我正在阅读php here中include和require之间的区别。
require will throw a PHP Fatal Error if the file cannot be loaded.
我在php中创建了一个测试文件,以便更好地了解差异,但两者都没有显示任何内容(我在require
中没有看到任何错误。)
请帮帮我。感谢
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
for( $value = 0; $value < 10; $value++ )
if($value>10)
require("boom.php"); // no such file exits in real
?>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
for( $value = 0; $value < 10; $value++ )
if($value>10)
include("boom.php"); // no such file exits in real
?>
</body>
</html>
答案 0 :(得分:3)
您的测试代码错误,$value
永远不会超过10.尝试此操作,您将获得致命错误:
<?php
require("boom.php"); // no such file exits in real
?>
答案 1 :(得分:0)
可能您的PHP已关闭display_errors,这意味着您不会在客户端输出中看到错误消息。您应该在开发环境中的php.ini中启用此设置。
如果你有类似的东西,你至少会看到失败:
<html>
<body>
<p>Before require</p>
<?php require('does-not-exist'); ?>
<p>After require</p>
</body>
</html>
如果有一些实际输出,你会看到只输出'before require'文本 - 当require()
失败时,脚本将终止执行。
使用您的版本,您没有可见的输出,并且必须在浏览器中查看页面来源才能看到没有</body></html>
答案 2 :(得分:0)
可能display_errors
已停用。您可以致电phpinfo()
来查看此内容。
尝试放置
ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);
在脚本的开头,直接在屏幕上显示错误(仅推荐用于开发系统)。
编辑 Doh!我跟Damien一起回答。