file1.php 和 file2.php 带有 die();功能。
include.php:
<? include 'file1.php';
include 'file2.php' ?>
文件1.php
<? echo 'included'; die(); ?>
文件2.php
<? echo 'not included'; die(); ?>
如何使用 die() 包含这两个文件;功能?
如果你想测试
include
行是否成功,你可以测试include函数本身的返回值:
// https://www.php.net/manual/en/function.include.php Example #4
if ((include 'file1.php') != 'OK') {
die();
}
您也可以根据您的需要考虑使用 require() 而不是 include() :
require() 与 include() 相同,除了失败时它也会产生致命的 E_ERROR 级别错误。换句话说,它将停止脚本,而 include() 仅发出警告 (E_WARNING),允许脚本继续。
如果我正确理解你想要做什么,那么不幸的是这是不可能的。
die();
将停止脚本在调用它的地方执行。
以下是如何包含文件,或者如果包含失败则显示一条消息的代码示例。
(include('file.php')) || die('Failed to include file!');
if (!condition){
include_once('./inc/header.inc.php');
echo "Errormessage";
include_once('./inc/footer.inc.php');
die();
}
我希望这是你想要的。
只是对 LorenzoP 方法的一个小改进:
(@include("file.php")) or die("Failed to include!");
// notice the @ sign!
这样,当包含失败时,您就可以节省 2 行难看的 php 警告。否则我认为这确实是处理失败包含的最佳方法。 (另外,他的答案应该是被接受的。)
如果你的包含文件的执行不依赖于当前文件(没有共享变量、函数等),那么使用
file_get_contents('link_to_file.php');
而不是包含方法。当你强制文件独立执行时,它不会对脚本执行产生影响。
die()
只是一个有错误的退出,你不能在其中包含文件,我真的不明白你为什么要这样做。您能否提供更多关于您想要实现的目标的详细信息?