php错误抛出

时间:2011-07-26 07:10:34

标签: php

我有以下PHP代码行:

 <?
    ini_set('display_errors', 'On');
    error_reporting(E_ALL | E_STRICT);
    if(file_exist('menu.xml'){
    print("file exist");
    $xml = simplexml_load_file('menu.xml');
    print_r($xml);
    }else{
    print("cant find menu.xml");
    exit('failed to open menu.xml');
    }
    ?>

当我打开它时,浏览器中没有显示任何内容(我预计会出现错误消息)。我知道在if语句结束时有一个“)”缺失,但为什么不首先在php抛出错误。 一旦我修复它说未定义的函数file_exist()?根据php Simplexml文档,file_exist是一个有效的函数。

5 个答案:

答案 0 :(得分:4)

您没有看到任何内容,因为语法错误会阻止脚本完全执行。由于脚本是无效的PHP,因此根本无法执行。所以你的display_errors指令永远不会被执行。相反,使用php.ini中有关错误处理的设置,显然它们被设置为禁止所有错误输出。

答案 1 :(得分:1)

答案 2 :(得分:0)

你确定你没有想到file_exists()吗?

http://php.net/manual/en/function.file-exists.php

SimpleXML代码示例:

<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    print_r($xml);
} else {
    exit('Failed to open test.xml.');
}
?>

答案 3 :(得分:0)

正确的功能是file_exists()而非file_exist()

答案 4 :(得分:0)

我认为由于语法错误而未执行代码,因此display_errorserror_reporting仍配置为系统默认值。

您必须在php.ini中或通过php_flagphp_value .htaccess-directive配置它们才能在语法错误的情况下生效。