2017-05-24 6 views
1

예기치 않은 PHP의 증분 연산자 문제가 있습니다. 주어진 두 프로그램에서 봐 주시기 바랍니다 :PHP에서 증분 연산자 문제가 발생했습니다

1 프로그램 :

<?php 
    $a=5; 
    $a++; 
    echo $a; 
?> 

그것이 내가 분명히 일이 있었는지, 그냥 1

으로 값을 증가 있음을 이해하는 6를 인쇄

2 프로그램 :

<?php 
    $a=5; 
    $b = $a++;  // just assigned incremented value to a new variable b. 
    echo $b; 
?> 

5를 인쇄합니다.

여기에 혼란이 있습니다. 변수에 증가 값을 할당 했으므로 6을 인쇄해야합니다 - 왜 5를 인쇄합니까?

+1

[참조 - PHP에서이 기호의 의미는 무엇입니까?] (https://stackoverflow.com/q/3737139/6521116) –

+0

이 두 번째 시나리오에서는 $ a 값이 증가하지 않고 $ a가 $ b에 할당되는 것으로 간주됩니다. 그래서 가치는 5입니다. – RaMeSh

+0

'$ a ++', 먼저 표현식 값을 사용하고 자동 증가. '++ $ a'는 자동으로 증가한 다음 표현식 값을 사용합니다. –

답변

1

당신은 5를 얻고 있습니다. 왜냐하면 후위 연산자에서 먼저 값이 증가 할 것이기 때문에 값을 $ b에 할당 할 것이기 때문입니다. 따라서 $ a 값이 증가한 후 $ a에 $ a가 할당됩니다.