[php] PHP에서“do something OR 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()문 을 평가 하고 스크립트를 종료합니다.


답변

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";
}


답변