运算符
算术运算符
- 加法 '+'
- 减法 '-'
- 乘法 '-'
- 除法 '/'
- 取模 '%': 取余数
<?php
$a = 1;
$b = 3;
echo $a + $b.'<br/>'; // => 4
echo $a - $b.'<br/>'; // => -2
echo $a * $b.'<br/>'; // => 3
echo $a / $b.'<br/>'; // => 0.3333333333
echo $a % $b.'<br/>'; // => 1
?>
赋值运算符
- 赋值 '='
- '&': 引用赋值,意味着两个变量都指向同一个数据, 共享同一块内存地址的数据, 如果该数据发生了改变, 则两个变量的值都发生了改变
<?php
$a = 1;
$b = $a;
echo $b.'<br/>'; // => 1
$b = 4;
echo $b.'<br/>'; // => 4
echo $a.'<br/>'; // => 1
$c = &$a; // 引用赋值
echo $a.'<br/>'; // => 1
echo $c.'<br/>'; // => 1
$c = 10; // 改变了 $c, 实际是改变了对象内存地址的数据
echo $a.'<br/>'; // => 10 // 所以 $a 也变了
echo $c.'<br/>'; // => 10
?>
比较运算符
比较运算符表格看一看 == 和 === 的区别
<?php
$a = 1;
$b = '1';
var_dump($a == $b); // => bool(true)
var_dump($a === $b); // => bool(false), 原因: $a 是整型, $b 是字符串
?>
三元运算符
- '?:' 也是一个比较运算符,
表达式: (expr1)?(expr2):(expr3)
解释: 如果 expr1 是 true, 则返回 expr2, 否则返回 expr3,
例子:
<?php
$a = true ? '内容1' : '内容2';
echo $a.'<br />'; // => 内容1
$b = false ? '内容1' : '内容2';
echo $b.'<br />'; // => 内容2
$c = 5 > 3 ? '内容1' : '内容2';
echo $c.'<br />'; // => 内容1
?>
逻辑运算符
逻辑运算符<?php
$a = true;
$b = false;
var_dump($a and $b); // => bool(false)
var_dump($a && $b); // => bool(false)
var_dump($a or $b); // => bool(true)
var_dump($a || $b); // => bool(true)
var_dump($a xor $b); // => bool(true)
var_dump(!$a); // => bool(false)
var_dump($a && !$b); // => bool(true)
?>
字符串连接运算符
- 连接运算符 '.' 忘了, 前面也一直在用, haha
- 连接赋值运算符 '.='
直接看代码
<?php
$a = 'guoyou';
$b = $a.'.li';
echo $b.'<br />'; // => guoyou.li
$c = 'hello ';
$c .= $b;
echo $c.'<br />'; // => hello guoyou.li
?>
错误控制运算符
PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
<?php
$conn = @mysql_connect("localhost","username","password");
echo "出错了,错误原因是:".$php_errormsg;
?>
学习资料: 慕课网
网友评论