2013-02-28 166 views
2

$a = 1; 
$b = $a; 

等於寫這個?

$a = $b = 1; 

將在第二個例子中始終把1的值都$ a和$ b,即使$ a和$ b已經有值分配給他們?

+0

是的,它會 2013-02-28 16:01:26

+2

多個分配(與額外的操作員)不應該在可維護的代碼。 – 2013-02-28 16:03:14

+0

@Mike B,請詳細說明,因爲我們在討論初始化語句時沒有看到問題,如示例中所示。 – 2013-02-28 16:04:28

回答

3

是的,PHP會將1放入$b,然後將$b的值放入$a,即1

第一項任務是$b = 1,下一項是$a = $b,沒有歧義。

5

Quoting the documentation:

賦值表達式的值是分配的值。也就是說, 「$ a = 3」的值是3,這可以讓你做一些小技巧:

<?php 

$a = ($b = 4) + 5; // $a is equal to 9 now, and $b has been set to 4. 

?> 

因此,要回答你的問題,分配$b = 1的結果是1,因此,$a = $b = 1會將值$b = 1(也就是1)分配給$a

這就是說,濫用這可能會導致難以閱讀的代碼。