【问题标题】:Php include not working? function not being includedphp包括不工作?功能不包括在内
【发布时间】:2011-08-11 08:18:15
【问题描述】:

这里是情况的完整背景:

我最近买了一台新的 Mac,我是一名 php 开发人员,所以我下载了 MAMP 并开始开发。

首先我注意到我的包含没有被包含,但我通过配置我的 php.ini 来改变它。

但是现在,当我尝试使用函数包含文件时,它无法识别该函数。

例如我有一个名为functions.php的文件:

<?php
function doit(){
    echo "did it";
}
?>

还有一个包含它的文件 index.php

<?php include("functions.php"); doit();?>

我收到此错误消息

致命错误:在第 4 行的 index.php 中调用未定义函数 doit()

【问题讨论】:

  • 您是否收到未包含文件的警告?
  • @tandu 说了什么。检查是否有错误报告设置。

标签: php function include-path


【解决方案1】:

对我来说,问题是由于包含文件中的函数名称与初始文件中的函数名称相同。

我让所有的函数名都是唯一的,不再有问题了。

【讨论】:

    【解决方案2】:

    我也遇到过这个问题。

    就我而言,我发现它可能是您的“functions.php”文件权限被拒绝。

    请尝试在服务器中“chmod 777 functions.php”。

    让functions.php可以在web服务器中执行。

    感谢 Thatjuan,因为当我改用 require() 时,服务器会显示正确的错误消息。

    【讨论】:

      【解决方案3】:

      因此,如果有人因为遇到同样的问题而偶然发现这个论坛,请让我解释一下出了什么问题以及出现问题的原因。

      如果您包含不在您的目录中的函数(例如 c:// 或 file://),而是使用 http 包含。包含只能返回文件中回显的内容,但不会显示变量或函数之类的内容。所以总是通过目录包含函数和变量

      【讨论】:

      • 我最后一天的大部分时间都在工作,试图找出这个 /exact/ 问题。由于 PHP 的怪异,它没有在我包含的任何文件中找到我的函数,我确实通过 HTTP 进行了引用,但后来我使用 $_SERVER['DOCUMENT_ROOT'] 遇到了上面的评论,它使一切工作得很好(终于!)。
      【解决方案4】:

      有时当前目录不是您所期望的,例如当您从包含的文件中包含一个文件时。

      我喜欢在我的包含中使用$_SERVER['DOCUMENT_ROOT'],这样我就可以始终从我网站的根目录绝对引用它们:

      <?php
          include($_SERVER['DOCUMENT_ROOT']."/includes/functions.php");
          doit();
      ?>
      

      如果您的包含目录位于文档根目录之上,您可以使用.. 仍然从根目录引用。

      【讨论】:

      • 一百万次是的,谢谢!这让我不知道为什么我的东西不起作用。
      • 在使用 $get_stylesheet_directory_uri 时遇到了与 WordPress 类似的问题,因此我开始使用 ABSPATH 进行引用。 $_SERVER['DOCUMENT_ROOT'] 会很好,但是,如果我的开发和生产环境具有相同的目录结构。
      【解决方案5】:

      尝试 require() 而不是 include。也许包括失败并且没有显示错误。

      【讨论】:

      • 这意味着functions.php位于不同的目录中。要进行测试,您可以使用文件的完整路径。例如 /var/www/site/functions.php
      • 这种行为很奇怪,因为如果我只是告诉它回显文本,它会这样做但是如果我包含一个函数,它就看不到它并给我和错误。
      • localhost:8888/perfectur/perfectur/functions/formfunctions.php -- 这不是文件路径!
      • 你需要在系统中尝试functions.php的路径,而不是它的url。你有控制台访问权限吗?如果是这样,只需找出文件所在的目录并使用完整路径包含它。
      猜你喜欢
      • 2014-07-20
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      • 2017-06-01
      • 2011-12-01
      • 2018-09-13
      相关资源
      最近更新 更多