2011-09-10 3 views
1

PHP에서는 die()를 사용하여 전체 스크립트를 삭제할 수 있습니다. 그러나 스크립트를 특정 지점까지 실행하고 전체 스크립트를 죽이지 않고 종료합니다. 이 같은PHP : 조만간 스크립트를 종료 하시겠습니까?

뭔가 :

echo "Hello, what is your name?"; 
if($name == $blacklist) 
{ 
    echo "I don't talk to strangers"; 
    die(); // This will break all the echos 
} 
else 
    //stuff 

난 그냥 실제로 스크립트 인쇄 아무것도하지 않습니다 것입니다() 다이를 사용하여 스크립트가 종료 (및 종료 시점까지 에코 인쇄)하고 싶다.

아이디어가 있으십니까? C 에서처럼 "return 0"일까요?

+1

예제가 제대로 작동합니다. 'die()'가 호출 될 때까지 모든 것을 에코합니다. 어떤 PHP 버전을 사용하고 있습니까? –

+0

@ Tarek 와우, 어떻게 그 실수를 저질렀 는가 ... 왜 죽었을 때 전체 스크립트가 실행되지 않는다고 생각한 몇 가지 이유. – dukevin

+0

내 나쁜 사람, 시간 낭비를해서 죄송합니다. – dukevin

답변

4

당신은

die("I don't talk to strangers"); 

또는

echo "I don't talk to strangers";exit; 

하거나 "반환"할 수 return;

또는

+0

하지만 "안녕하세요, 당신 이름이 무엇입니까?"라고 인쇄되지 않습니다. " – dukevin

+0

@dulkevin은 GET/POST 요청에서 매개 변수를 설정했는지 여부를 확인해야한다고 인쇄합니다 . 그렇지 않다면 단순히 "헬로우, 네 이름은 무엇입니까?"라고 대답하십시오. 그렇지 않으면 블랙리스트 검사를 수행하십시오. –

0

당신이 그것을 상상에는 "스크립트 실행이"없다 throw new Exception("I don't talk to strangers");.

실제로는 실행중인 동일한 스크립트의 인스턴스가 2 개 있습니다.
첫 번째 질문과 두 번째 답변을 확인하십시오.

PHP 스크립트 실행은 원초적입니다. 데스크톱 응용 프로그램과 같이 지속적으로 연결되는 악마가 아니라 브라우저에서 계속 실행되는 데스크톱 응용 프로그램과 다릅니다. 그것은 커맨드 라인 유틸리티와 같아서 일을하고 나가는 것입니다. 그것은 분리되어 실행됩니다.
따라서 전체 스크립트가 아닌 종료 할 적절한 코드 분기를 선택해야합니다.