b

저만 몰랐나요..?

간단히 얘기해서.. 조건문안의 함수는 조건문이 참일때만 실행된다..
라는건데요..

<?

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메뉴얼에 어떻게 검색해야 나올지 몰라서.. 찾진 못하고..
구글링 해도.. 키워드가 마땅치 않는지 않나오고..

그냥.. 이렇게 되는구나~ 하고 있네요 ㅎㅎ


|

댓글 5개

if( 0 && $test_text =~~~)
and 조건문이란 것이 앞에서 거짓이 나오면 뒤의 조건은 따져볼 필요가 없으니
당연히 실행이 안되어 $test_text 는 변화가 없습니다
오호 그런식으로 되어 있는거군요.
저도 저 관련글 처음 봤을때는 좀 신기하긴 했습니다...잘 사용할 만한 문구는 아니지만 나름 응용해보면 재미있는 결과가 노울수도 있더라구요...ㅎㅎ
실제론 헷갈리므로 사용은 안하지만요;;
전.. 여태껏 의심도 않하고.. 꾀 많은곳에 저런식으로 짜놓은 소스가 있더군요..
교묘하게 결과가 제대로 나오는것만 사용되 버려서..
이제서야 이걸 알아챈.. ㅎㅎ
다른 언어(C, Java.. 등등) 에서도 &&(AND) 또는 ||(OR) 연산자는 그런 방식으로 동작합니다.
|| 연산자는 앞이 참이면 뒤 조건을 보지 않지요.
댓글을 작성하시려면 로그인이 필요합니다.

자유게시판

+
제목 글쓴이 날짜 조회
14년 전 조회 1,715
14년 전 조회 1,392
14년 전 조회 1,220
14년 전 조회 1,182
14년 전 조회 2,148
14년 전 조회 2,005
14년 전 조회 1,320
14년 전 조회 1,481
14년 전 조회 1,081
14년 전 조회 1,231
14년 전 조회 1,201
14년 전 조회 2,017
14년 전 조회 1,299
14년 전 조회 1,191
14년 전 조회 1,280
14년 전 조회 1,238
14년 전 조회 1,289
14년 전 조회 1,461
14년 전 조회 1,216
14년 전 조회 1,867
14년 전 조회 1,193
14년 전 조회 1,286
14년 전 조회 1,902
14년 전 조회 1,140
14년 전 조회 1,425
14년 전 조회 1,268
14년 전 조회 1,241
14년 전 조회 1,865
14년 전 조회 1,171
14년 전 조회 1,260