为什么php在die()之后继续解释;

时间:2012-10-25 10:39:58

标签: php syntax interpreter

  

可能重复:
  stop php processing file

今天玩PHP的时候注意到一件奇怪的事情

我有一个代码块,它可以完成工作。

$images = $wpdb->get_results($query);
    foreach($images as $image):
        $img = get_post($image->meta_value);
        print_r($img);
    endforeach;

在这段代码之后,我试图死去;因为我需要分析输出。

$images = $wpdb->get_results($query);

            foreach($images as $image):
                $img = get_post($image->meta_value);
                print_r($img);
            endforeach;
    die;bla bla bla qit error !98123

这意味着停止这条线并且不要走得更远。

但是,我认为它是一种脚本语言,它逐行解析而不会追踪die;

但事实上它确实如此。

有人对此有任何解释吗?

2 个答案:

答案 0 :(得分:6)

die()exit()函数仅停止脚本的执行,只有 文件完全解析后才会发生

如果您要停止解析本身,则必须使用__halt_compiler(),请参阅:http://php.net/manual/en/function.halt-compiler.php

答案 1 :(得分:0)

如果这是您的实际代码,那么您会遇到语法错误。 PHP在执行代码之前解析它们。意思是,如果你使用die或exit就没关系。如果那不是你的代码(也许你只是用它作为一个例子)并且事情仍然是“奇怪的”,你应该知道die的工作方式与exit完全相同,其中:

  

终止脚本的执行。关机功能和对象   destructors 将始终执行,即使调用exit