php - Sont plusieurs affectations variables effectuées par valeur ou référence

Mots clés : phpvariablesvariable-assignmentphp

meilleur 5 Réponses php - Sont plusieurs affectations variables effectuées par valeur ou référence

vote vote

100

$a = $b = 0;  $b = 3;   var_dump($a); var_dump($b); 
int(0)  int(3) 
class Obj {      public $_name; }  $a = $b = new Obj();  $b->_name = 'steve';  var_dump($a); var_dump($b); 
object(Obj)#1 (1) { ["_name"]=> string(5) "steve" }  object(Obj)#1 (1) { ["_name"]=> string(5) "steve" } 
vote vote

88

$a = ($b = 0); 
vote vote

74

$a = $b = 0; $a = 5; echo $b; 
$a = $b = 0; $b = 5; echo $a; 
vote vote

66

$a = $b = 4; var_dump($a, $b); $b = 5; var_dump($a, $b); 
int(4) int(4) int(4) int(5) 
class Tmp     {     public $foo;      public function __construct()         {         $this->foo = 'bar';         }     }  $a = $b = new Tmp(); var_dump($a, $b); $a->foo = 'oth'; var_dump($a, $b); 
object(Tmp)#1 (1) {   ["foo"]=>   string(3) "bar" } object(Tmp)#1 (1) {   ["foo"]=>   string(3) "bar" } object(Tmp)#1 (1) {   ["foo"]=>   string(3) "oth" } object(Tmp)#1 (1) {   ["foo"]=>   string(3) "oth" } 
vote vote

60

$a = $b = 0; $b++; echo $a; 
$a = ($b = 4) + 5; // $a is equal to 9 now, and $b has been set to 4. 
$a = $b = $c = new DOMdocument(); $c->appendChild($c->createElement('html')); echo $a->saveHTML(); 

Questions similaires