PHP变量之间赋值有时会受另一变量值变化而受影响,举例变量a赋值给变量b,当变量a发生改变时,变量b有时也会跟着改变
PHP变量之间赋值有时会受另一变量值变化而受影响,举例变量a赋值给变量b,当变量a发生改变时,变量b有时也会跟着改变。
原因是变量都是整形、字符串、布尔型、数组时赋值不会受影响,变量为对象类型时会跟着发生改变(JavasSript里边数组也会受影响),具体看下边案例:
<?php
/** PHP变量赋值问题 **/
$a = 1;
$b = 2;
$b = $a;
$a = 3;
echo $b; // 输出:1
$a = 'a';
$b = 'b';
$b = $a;
$a = 'c';
echo $b; // 输出:a
$a = true;
$b = $a;
$a = false;
echo $b; // 输出:1
$a = array();
$b = array();
$a['id'] = 1;
$a['name'] = 'a';
$b['id'] = 2;
$b['name'] = 'b';
$b = $a;
$a['id'] = 3;
$a['name'] = 'c';
print_r($b);
// 输出:Array([id] => 1[name] => a)
class test{}
$a = new stdClass();
$b = new test();
$a->id = 1;
$a->name = 'a';
$b->id = 2;
$b->name = 'b';
$b = $a;
$a->id = 3;
$a->name = 'c';
print_r($b);
// 输出:stdClass Object([id] => 3[name] => c)
// 变量b值跟着改变,受影响
?>