php_l3arning_notes_3

运算符(operator ):

一种将数据进行运算的特殊符号,在php中共有十种运算符。

赋值运算符 = 

表示将右边的结果(可以是变量、数据、常量和其他匀速出来的结果),保存到内存的某个位置,然后将内存地址赋值给左侧的变量(常量)。

算术运算符

+  执行数据累加

-  数据相减

*  乘

/ 除

% 取余运算

在进行取余或除法时,被除数不能为0

比较运算符

比较两个数据的大小,或者两个内容是否相同,返回结果都是bool类型(满足返回true)

>

>=

<

<=

|=数据大小不同

== 数据大小相同

=== 全等于(数据大小和数据类型都相同)

|== 不全等于,只有大小或类型不同

<?php
$a=$b=10;
$c=0;
//var_dump($a/0); //error 被除数不能为0
echo "<hr/>";
$a="123";
$b=123;
//判断相等
 var_dump($a==$b); //返回true
 //全等判断
var_dump($a===$b); //返回false
?>

逻辑运算符

针对不同的结果进行匹配

&& 逻辑与

||  逻辑或

! 逻辑非

<?php
$a="weekend";
$b="goods";
//逻辑与
var_dump($a == "weekend"&& $b=="good"); //bool(false) 在日常写码时,尽量将出现概率最高的表达式放到第一位。   
var_dump($a=="weekend"||$b=="good");//bool(true)
var_dump($b=="good");//bool(false)
var_dump(!($b=="good"));//bool(true)
?>

连接运算:是php中将多个字符串拼接的一种符号

. 将两个字符串连接在一起

.= 复合运算,将左边的内容与右边内容连接起来,然后重新赋值给左边变量。

A.=b ====A=A.b

<?php
$a="weekend";
$b="goods";
$a.=$b;
echo $a; //返回weekendgoods

错误抑制符:在可能出现的表达式前面使用@符号即可;

三目运算符

三目运算:有三个表达式参与的运算

语法格式

表达式1?表达式2:表达式3

运算:如果表达式1成立,那么执行表达式2,否则执行表达式3

自操作运算符:自己操作自己

++  在原来的值上+1

--   在原来的值上-1

php中操作符可以放到变量前或者后:前置自操作和后置自操作

$a=1;

$a++;

++$a; //前置或者后置如果本身只有自操作,不参与其他运算(自操作同时,那么效果是一样的,但是如果自操作同时还参与别的运算,那么效果就不一样)

$a=1;

$b=$a++;  //后置自操作 $a=$a+1;$a=2;but $b=1

$c=++$a;  //前置自操作  $a=$a+1;$a=2;$c=2

后置自操作:先把自己所保存的值留下来,然后改变自己,自己给别人的值是原来的值;

前置自操作:先把自己改变,然后把改变后的值给别人

衍生符号:类似自操作

+=:左边的结果与右边的结果相加,然后赋值给左边

-=:左边的减去右边的结果,然后赋值给左边

*=

/=

%=

注意 :右边是一个整体 

计算机码:原码、补码、反码

位运算符

位运算:取出计算机中最小的单位(bit)进行运算

& 按位与

| 按位或

~ 按位非

^ 按位异或 同0异1

<< 按位左移,整个位(32位),向左移动以为,右边补0

>>按位右移动

 运算符优先级

流程控制:代码执行的方向

控制分类:

顺序结构:代码从上往下,顺序执行

分支结构:给定一个条件,同时有多种可执行代码,然后根据条件执行某一段

循环结构:在某个条件控制范围内,制定的代码块可以重复执行。

顺序结构:最基本结构,所有代码默认都是从上往下依次执行

分支结构:在php中,分支结构主要有两种:if分支和switch分支

if分支:

if分支php也可以提供多种方式来实行

if(条件表达式1){

//满足条件时所要执行的代码段

}elseif(条件表达式2){

不满足条件表达式1,但满足条件表达式2}

<?php
$day="friday";
if($day=="sunday"){
    echo 'work';
    }elseif($day=='satarday'){
    echo 'go out';
    }
    else{echo "learing";
    }

Switch分支:将条件放到分支结构内部判断

基本语法:

switch(条件表达式)

//所有条件判断:逐个进行

case 值1:  //当前条件表达式的结果与值1相等(==)

brak;  //在switch中,如果条件匹配成功,那么系统就不会再次匹配条件,会自动顺序执行下辖的所有代码(case代码除外),需要中断执行。

case 值2:

berak;

 if和switch的选择

1、if能做所有分支结构事情

2、switch处理的时条件比较多,同时比较单一,而且时固定值匹配的分支结构。

循环结构:代码段在一定的控制下可以多次执行

for循环

for(条件表达式1;条件表达式2;条件表达式3){

  //条件表达式1:定义初始化条件,可以有多种赋值语句存在,使用逗号分隔即可。

  //条件表达式2:边界判定,限定循环执行的次数

  //条件表达式3:用来执行条件变化

循环体

}
<?php
//从1到 10输出
for($i=1;$i<=10;$i++){
    echo $i,"<br/>";
}
echo $i;
//无条件for循环

for(;;){

死循环

}

while循环

条件初始化

while(条件表达式)

{

//条件表达式用于判断边界条件

循环体;//循环条件的变化

}
<?php
//从1到 10输出
$i =1;
while($i<=10){
    echo $i,"<br/>";
    $i++;
}

for与while的选择

1、如果时基于固定一直条件,使用for循环

2、while可以做灵活的条件判定

do-while循环:至少执行一次循环体

foreach循环:专门针对数组

循环控制

中断控制:重新开始循环,循环体重还有其他内容,也再执行;

continue 层级;

终止控制:直接跳出循环

break层级;

<?php
//do-while
//输出1-100之间的5的倍数
$i=1;
while($i <=100){
    if($i %5 !=0 ){
    //说明$i不是5的倍数
    $i++;
    //重新循环
    //continue; //重新跳到循环开始处
    break;//终止循环
    }
echo $i,"<br/>";
}
echo $i;

流程控制替代语法:分支和循环结构的替代语法

原文地址:https://www.cnblogs.com/1go0/p/9977338.html