PHPの複数の変数に一度に同じ値を割り当てるにはどうすればよいですか?
私は次のようなものを持っています:
$var_a = 'A';
$var_b = 'A';
$same_var = 'A';
$var_d = 'A';
$some_var ='A';
私の場合、すべての変数の名前を同じ名前に変更することはできません(これにより、作業が簡単になります)。したがって、すべての変数に同じ値をはるかにコンパクトな方法で割り当てる方法はありますか?
PHPの複数の変数に一度に同じ値を割り当てるにはどうすればよいですか?
私は次のようなものを持っています:
$var_a = 'A';
$var_b = 'A';
$same_var = 'A';
$var_d = 'A';
$some_var ='A';
私の場合、すべての変数の名前を同じ名前に変更することはできません(これにより、作業が簡単になります)。したがって、すべての変数に同じ値をはるかにコンパクトな方法で割り当てる方法はありますか?
$var_a = $var_b = $same_var = $var_d = $some_var = 'A';
他の答えに追加します。
$a = $b = $c = $d
実際には$a = ( $b = ( $c = $d ) )
PHPは、デフォルトでプリミティブ型int, string, etc.
を値で渡し、オブジェクトを参照で渡します。
つまり、
$c = 1234;
$a = $b = $c;
$c = 5678;
//$a and $b = 1234; $c = 5678;
$c = new Object();
$c->property = 1234;
$a = $b = $c;
$c->property = 5678;
// $a,b,c->property = 5678 because they are all referenced to same variable
ただし、キーワードを使用してオブジェクトを値で渡すこともできclone
ますが、括弧を使用する必要があります。
$c = new Object();
$c->property = 1234;
$a = clone ($b = clone $c);
$c->property = 5678;
// $a,b->property = 1234; c->property = 5678 because they are cloned
ただし、このメソッドを使用してキーワードを使用した参照でプリミティブ型を渡すことはできません&
$c = 1234;
$a = $b = &$c; // no syntax error
// $a is passed by value. $b is passed by reference of $c
$a = &$b = &$c; // syntax error
$a = &($b = &$c); // $b = &$c is okay.
// but $a = &(...) is error because you can not pass by reference on value (you need variable)
// You will have to do manually
$b = &$c;
$a = &$b;
etc.