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()
문 을 평가 하고 스크립트를 종료합니다.
답변
PHP or
는 C와 비슷하게 작동합니다 ||
(부수적으로 PHP에서도 지원됩니다. or
더보기 좋고 연산자 우선 순위가 다릅니다 . 이 페이지 참조 ).
그것은로 알려진 단락 이 최종 값을 결정하기에 충분한 정보를 가지고 일단 어떤 평가를 건너 뛸 수 있기 때문에 운영자.
경우의 예에서, mysql_connect()
반환 TRUE, 다음 PHP는 이미 전체 문장이 무엇인지에 상관없이 TRUE로 평가 없다는 것을 알고 die()
에 evalutes, 따라서 die()
평가되지 않습니다.
경우 mysql_connect()
반환 FALSE, PHP는 evalute으로 진행하고 시도 때문에 전체 문이 TRUE 또는 FALSE로 평가할지 모르는 die()
– 그 과정에서 스크립트를 종료.
or
작동 방식을 활용하는 멋진 트릭입니다 .
답변
다른 사람들이 설명한대로 작동합니다.
PHP에서는 예외를 발생시키지 않으므로 “die”를 사용하지 마십시오 (Perl에서와 같이). 대신 정상적인 방식으로 예외를 올바르게 처리하십시오.
die는 PHP에서 잡힐 수 없으며 기록하지 않습니다. 대신 메시지를 비정상적으로 인쇄하고 아무에게도 알리거나 이벤트를 기록하고 재 시도 할 기회를주지 않고 즉시 스크립트를 종료합니다.
답변
$con=mysql_connect($host, $user, $pass)
if(!$con)
{
die("could not connect");
}
else
{
echo "Connected";
}