凡是过往,皆为序章

0%

PHP基础知识(三)

这篇文章主要介绍PHP的各种运算符,和流程控制。

运算符


PHP中的运算符有很多种:

  • 赋值运算符:赋值操作

  • 算术运算符:算数计算

  • 错误抑制符:抑制错误

  • 比较运算符:数据对比

  • 合并运算符:真伪判定给出不同结果

  • 逻辑运算符:逻辑结果判定

  • 连接运算符:字符串连接

  • 三目运算符:真伪判断给出不同结果

  • 自操作运算符:简化操作

一、赋值运算符

有以下几种:

  • =:普通赋值。
  • +=-=*=/=%=:复合赋值运算(是将左侧和右侧的整体结果进行计算)。
  • .=:先将左边的符号的结果与右边的结果进行字符串连接(.是字符串连接),然后赋给左边。

二、算数运算符

除了简单的加减乘除取余等,还有其他需要格外注意的运算符。

  • **:幂运算,底数的指数次运算。

三、错误抑制符

错误抑制:在可能出现错误的代码前使用错误抑制符,让错误不会报出来。

  • 只需要在可能出现的错误表达式之前使用即可。

  • 错误抑制符只有一个:@

  • 错误抑制符只针对就近的目标,如果是针对结果,需要使用()

  • 只能抑制简单的错误(如notice,warning)。

1
2
3
4
5
6
#正常处理
$r = 10/0; #报错,除数为0
#错误抑制处理
$r = @10/0; #报错,出错的位置是10/0这个过程,抑制的位置是10,无意义
#正确处理
$r = @(10/0); #不报错,因为是过程出错

四、比较运算符

除了熟悉的>,<,>=,<=,==,!=等运算符,格外介绍下面的特殊运算符。

  • <=>:左边大于右边返回1,相等返回0,小于右边返回-1
  • ===:左边等于右边,且两边数据类型一致,返回true。
  • !==:左边等于右边,且两边数据类型一致,返回false。

注意:在PHP中比较运算比较特殊,通常系统会自动将类型转换成相同的然后进行比较,所以在使用=====比较的时候,如果不够确定可以参考PHP操作手册中的类型比较表。

五、合并运算

概念:用于简单的数据存在型判定,不存在时给出一个设定值。

  • 合并运算需要一个判定:目标。
  • 合并运算需要一个设定值:目标不存在时的值。
  • 合并运算符:$a ?? B
    • $a存在,整个表达式返回$a的值。
    • $a不存在,整个表达式返回B值。
  • 合并运算是保证代码的逻辑完整性:即总是有一个结果(不会不存在)

六、连接运算

概念:专门为字符串连接操作设定的运算符。

  • 连接运算需要两个数据的参与。
  • 连接运算符只有一个:. 英文点。
  • 连接运算是将两个字符串连接成一个字符串。
    • 如果数据不是字符串,系统会自动转变为字符串。

示例

1
2
3
$a = 'hello';
$b = 'world';
echo($a.' '.$b); #结果:hello world

七、三目运算

和基本的编程语言一样

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

八、逻辑运算

逻辑与或非 。

&&,||,!。

九、自操作运算

自增自减。

流程控制

选择结构

If分支

1
2
3
4
5
6
7
if ($a > $b) {
echo 'a > b';
} elseif ($a == $b) {
echo 'a = b';
} else if ($a < $b) {
echo 'a < b';
}

需要注意一点elseif和else if的一点细微区别,参见博客。https://blog.csdn.net/qq_31659985/article/details/82807153

Switch分支

1
2
3
4
5
6
7
8
switch(条件变量){
case 值:
代码;
break;
...
default:
代码;
}

循环结构

while循环

1
2
3
4
while(条件表达式){
循环体;
循环条件变更;
}

for循环

1
2
3
for(;;){
循环体;
}

foreach循环

PHP中专门进行数组遍历的循环

1
2
3
4
foreach(数组变量 as [下标变量=>] 值变量){
通过下标读取数组中每个元素的下标(可以没有)
通过值变量读取数组中每个元素的值
}

例如:

1
2
3
4
5
6
7
8
$info = [
'name' => 'tom',
'skill' => 'study',
'age' => '20'
];
foreach($info as $k => $v){
echo $k . "\t" . $v . "\n";#即可依次遍历;
}

注意:

foreach是根据数据指针所在的位置挨个取出元素的

  • 重置指针:执行一次。
  • 判断指针有效性
    • 指针有效:取出数组元素
      • 下标赋值给下标变量(如果提供了下标变量)
      • 值赋值给值变量
      • 指针下移
    • 指针无效:循环结束
  • 进入循环体

foreach可以不获取数组元素的下标

do-while循环

语法基本一致。

break,continue

语法基本一致。

~感谢你请我吃糖果~
-------------本文结束,感谢您的阅读,欢迎评论留言!-------------