php에서 if문 안에 조건식이 들어가는데.. 만약 or 연산자로 두가지 조건을 주었다고 가정하면 첫번째 조건이 참이면 뒤의 조건은 참인지 거짓인지 확인하지 않고 if문으로 들어가게 된다.


아래는 예다.


<?php

$a = 10;

if (1==0 || ($b = $a+5)>0)
            echo $a + $b;
            echo "\n";
?>

결과 : 25 

두번째 조건식에서 $b변수에 $a+5를 한 값을 넣어줬으니 $b는 15일테고 $a는 10이니 둘을 더하면 25다. 근데 비슷하지만 위 예제는 첫번째 조건식이 참이다. 

그래서 이번엔 첫번째 조건식을 거짓으로 설정하고 똑같은 코드를 실행해보겠다.

<?php

$a = 10;

if (1>0 || ($b = $a+5)>0)
            echo $a + $b;
            echo "\n";
?>


결과 : 10 

즉 $b변수에 대한 연산을 하지 않은 것이다.


이 것으로 보아 첫번째 연산이 참이면 or 뒤에는 어떤 값이 와도 참이기 때문에 프로그램의 속도를 위해 이런 방법을 사용한 것이라고 생각이 된다.


다른 언어에서도 이런지 확인해봐야겠다.

'Language > PHP' 카테고리의 다른 글

[PHP] timezone 설정  (0) 2016.09.23

+ Recent posts