한 번에 여러 변수에 동일한 값을 할당 하시겠습니까?


115

한 번에 PHP에서 여러 변수에 동일한 값을 할당하려면 어떻게해야합니까?

다음과 같은 것이 있습니다.

$var_a = 'A';
$var_b = 'A';
$same_var = 'A';
$var_d = 'A';
$some_var ='A';

제 경우에는 모든 변수의 이름을 같은 이름으로 바꿀 수 없습니다 (더 쉽게 만들 수 있음). 훨씬 더 간결한 방식으로 모든 변수에 동일한 값을 할당 할 수있는 방법이 있습니까?

답변:


248
$var_a = $var_b = $same_var = $var_d = $some_var = 'A';

훌륭하고 완벽하게 작동했습니다 $ level1 = $ level2 = $ level3 = $ level4 = false;
geilt 2013 년

1
제한이 있습니까?
dipi evil

9
이것은 Php 클래스에서 사용할 수 없으며 이것은 원시 유형입니다.
Chaminda Bandara 2011

@ChamindaBandara PHP 클래스에서 사용할 수 없다는 것은 무엇을 의미합니까?
Eoin

4
@Eoin :을 수행 할 $var_a = $var_b = ... = new Class();때 모든 변수는 동일한 인스턴스를 참조합니다 Class.
Tim Cooper

1

다른 답변에 추가합니다.

$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

그러나 keyword를 사용하여 값으로 객체를 전달할 수도 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.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.