저만 몰랐나요..? 정보
저만 몰랐나요..?
본문
간단히 얘기해서.. 조건문안의 함수는 조건문이 참일때만 실행된다..
라는건데요..
<?
echo $test_text = "<br>hi~hello";
if( 0 && $test_text = substr($test_text, 4, 3) ) echo "hi~";
echo "$test_text <br>";
?>
이런 소스에서 if문이 거짓이라서 substr 이 실행 안되고
hi~hello
hi~hello
라는결과가 나오더라구요.
조건식을 만들고 있는데.. 원래 생각대로라면, 참이던 거짓이던 함수가 실행되어서.. 함수의 결과는 나와야 할텐데.. 안나오게 되버려서.. 왜그런가 보니.. 이런거 같더라구요..
저희쪽 서버에서만 그런지.. php가 기본적으로 그렇게 되어 있는지..
php메뉴얼에 어떻게 검색해야 나올지 몰라서.. 찾진 못하고..
구글링 해도.. 키워드가 마땅치 않는지 않나오고..
그냥.. 이렇게 되는구나~ 하고 있네요 ㅎㅎ
추천
0
0
댓글 5개
if( 0 && $test_text =~~~)
and 조건문이란 것이 앞에서 거짓이 나오면 뒤의 조건은 따져볼 필요가 없으니
당연히 실행이 안되어 $test_text 는 변화가 없습니다
and 조건문이란 것이 앞에서 거짓이 나오면 뒤의 조건은 따져볼 필요가 없으니
당연히 실행이 안되어 $test_text 는 변화가 없습니다

오호 그런식으로 되어 있는거군요.
저도 저 관련글 처음 봤을때는 좀 신기하긴 했습니다...잘 사용할 만한 문구는 아니지만 나름 응용해보면 재미있는 결과가 노울수도 있더라구요...ㅎㅎ
실제론 헷갈리므로 사용은 안하지만요;;
실제론 헷갈리므로 사용은 안하지만요;;

전.. 여태껏 의심도 않하고.. 꾀 많은곳에 저런식으로 짜놓은 소스가 있더군요..
교묘하게 결과가 제대로 나오는것만 사용되 버려서..
이제서야 이걸 알아챈.. ㅎㅎ
교묘하게 결과가 제대로 나오는것만 사용되 버려서..
이제서야 이걸 알아챈.. ㅎㅎ

다른 언어(C, Java.. 등등) 에서도 &&(AND) 또는 ||(OR) 연산자는 그런 방식으로 동작합니다.
|| 연산자는 앞이 참이면 뒤 조건을 보지 않지요.
|| 연산자는 앞이 참이면 뒤 조건을 보지 않지요.