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

php로 웹 개발할때 date함수를 사용하면 아래와 같은 warning이 뜹니다.

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in

이 경고를 해결하기 위한 방법입니다.


1. /etc/php.ini 에서 datatimezone = Asia/Seoul 로 바꿔줍니다. 



2. php 위에 date_default_timezone_set('Asia/Seoul'); 를 추가합니다.

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

IF문에서 신기한것  (0) 2017.12.18

+ Recent posts