PHP 包含在多个包含时表现得很奇怪

标签 php include

我有以下代码:

if (include_once(dirname(__FILE__).'/file.php')
    || include_once(dirname(__FILE__).'/local/file.php')
    )
{

这会导致错误,因为 PHP 尝试包含 "1" (大概是 dirname(__FILE__).'/file.php' || dirname(__FILE__).'/local/file .php')

注释掉第二行可以使其按预期工作,但它不会使用第二个文件。我真的需要在这里使用 elseif 和代码重复吗?还是有办法让它工作?

$ php --version
PHP 5.2.6-3ubuntu4.2 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug 21 2009 19:14:44)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

最佳答案

include 语句进行分组:

if ( (include_once dirname(__FILE__).'/file.php')
      ||
     (include_once dirname(__FILE__).'/local/file.php')
   )

参见example #4在手册页中:

<?php
// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

// works
if ((include 'vars.php') == 'OK') {
    echo 'OK';
}
?>

关于PHP 包含在多个包含时表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592258/

相关文章:

php - curl 适用于 Windows 7 但不适用于 CentOS

php - 安装 PHP 7 MongoDB 客户端/驱动程序?

c++ - 外部 header 中的未识别数据类型

php - PHP 中可选包含

javascript - importScripts() 函数在 Firefox 插件代码中不起作用

c++ - 如何将头文件编译成可执行文件?

php - mysql全文搜索对最佳结果进行排序,然后按其他项目再次排序

If Else 语句响应中的 JavaScript For 循环

php - 从选择查询中检索日期数据

javascript - 使用 PHP include 获取本地 js kosher?