4.1 赋值运算符

PHP中的等于号 = 就是赋值运算符。

$sum = 1 + 2;

这个例子的正确解读方式是将表达式 1 + 2 的值赋值给等于号左边的 $sum 变量,而不是说 $sum 等于 1 + 2

赋值运算符可以配合算术运算符组合在一起应用。

// 定义变量 a = 10 , b = 5
$a = ($b = 5) + 5;

// 加减乘除
// $a = $a + $b
$a += $b;
// $a = $a - $b
$a -= $b;
// $a = $a * $b
$a *= $b;
// $a = $a / $b
$a /= $b;

// 取模
$a %= $b;
// 次幂
$a **= $b;

// 拼接字符串 返回 "105"
$a .= $b

赋值运算符一般是通过 传值赋值 的形式进行,也就是将等于号右边表达式的结果克隆一份给左边的变量,而这其中有一个例外是对象的赋值,默认便是 引用赋值,除非明确的使用 clone 关键字来拷贝。

// 普通变量
$foo = "abc";
$bar = $foo;
// 修改其值
$foo = "xyz";
// 输出 abc
echo $bar;


// 定义类
class Example{
    public $foobar = "iGuoji";
}
// 实例化
$exam = new Example();
// 输出 iGuoji
echo $exam->foobar . '
'; // 赋值 $temp = $exam; // 输出 iGuoji echo $temp->foobar . '
'; // 克隆 $hello = clone $exam; // 输出 iGuoji echo $hello->foobar . '
'; // 修改实例的属性 $exam->foobar = "Laravel"; // 输出 Laravel echo $temp->foobar . '
'; // 还是输出 iGuoji echo $hello->foobar . '
';

PHP支持显示的引用赋值,只需要使用&符号即可。

// 普通变量
$foo = "abc";
$bar = &$foo;
// 修改其值
$foo = "xyz";
// 输出 xyz
echo $bar;

需要注意的是,PHP里new运算符自动返回一个引用结果,如果再次对new使用引用,将会报错。

你可能感兴趣的:(4.1 赋值运算符)