php에서 if문 안에 조건식이 들어가는데.. 만약 or 연산자로 두가지 조건을 주었다고 가정하면 첫번째 조건이 참이면 뒤의 조건은 참인지 거짓인지 확인하지 않고 if문으로 들어가게 된다.
아래는 예다.
<?php
$a = 10;
if (1==0 || ($b = $a+5)>0)
echo $a + $b;
echo "\n";
?>
두번째 조건식에서 $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 |
---|