MySQL 데이터베이스에 액세스하기 위해 PHP 앱을 작성 중이며 자습서에서 다음과 같은 형식을 말합니다.
mysql_connect($host, $user, $pass) or die("could not connect");
PHP는 함수가 실패하여 die 부분을 실행한다는 것을 어떻게 알 수 있습니까? 나는 그것의 "또는"부분이 어떻게 작동하는지 묻는 것 같다. 전에 본 적이없는 것 같아요.
MySQL 데이터베이스에 액세스하기 위해 PHP 앱을 작성 중이며 자습서에서 다음과 같은 형식을 말합니다.
mysql_connect($host, $user, $pass) or die("could not connect");
PHP는 함수가 실패하여 die 부분을 실행한다는 것을 어떻게 알 수 있습니까? 나는 그것의 "또는"부분이 어떻게 작동하는지 묻는 것 같다. 전에 본 적이없는 것 같아요.
답변:
첫 번째 명령문 true
이을 반환 하면 전체 명령문이되어야 true
하므로 두 번째 부분은 실행되지 않습니다.
예를 들면 :
$x = 5;
true or $x++;
echo $x; // 5
false or $x++;
echo $x; // 6
따라서 쿼리가 실패하면 die()
문 을 평가 하고 스크립트를 종료합니다.
with
진술 과 같은 일종의 고급 기능 이라고 생각했습니다. 실제로 부울 표현식 일 때 ... 나는이 표현식을 사용할 때 특별히주의를 기울여야한다고 생각합니다. 오류. 제가 틀렸다면 저를 정정하십시오.하지만 그렇게 func_call($file) or die();
하여 기능이 실패하면 스크립트가 죽을 때 파일이 열린 상태로 유지됩니다.
or
있는 상황에서 사용하는 것이 좋은 습관 if
입니까?
PHP or
는 C와 비슷하게 작동합니다 ||
(부수적으로 PHP에서도 지원됩니다. or
더보기 좋고 연산자 우선 순위가 다릅니다 . 이 페이지 참조 ).
그것은로 알려진 단락 이 최종 값을 결정하기에 충분한 정보를 가지고 일단 어떤 평가를 건너 뛸 수 있기 때문에 운영자.
경우의 예에서, mysql_connect()
반환 TRUE, 다음 PHP는 이미 전체 문장이 무엇인지에 상관없이 TRUE로 평가 없다는 것을 알고 die()
에 evalutes, 따라서 die()
평가되지 않습니다.
경우 mysql_connect()
반환 FALSE, PHP는 evalute으로 진행하고 시도 때문에 전체 문이 TRUE 또는 FALSE로 평가할지 모르는 die()
- 그 과정에서 스크립트를 종료.
or
작동 방식을 활용하는 멋진 트릭입니다 .