我试图从另一个函数调用一个函数.我收到一个错误:
Fatal error: Call to undefined function getInitialInformation()
in controller.php on line 24
Run Code Online (Sandbox Code Playgroud)
controller.php文件:
require_once("model/model.php");
function intake() {
$info = getInitialInformation($id); //line 24
}
Run Code Online (Sandbox Code Playgroud)
模型/ model.php
function getInitialInformation($id) {
return $GLOBALS['em']->find('InitialInformation', $id);
}
Run Code Online (Sandbox Code Playgroud)
已尝试的事情:
我无法弄清楚这一点.我在这里错过了什么吗?
Eri*_*ski 66
将此代码放在一个名为的文件中p.php
:
<?php
class yoyo{
function salt(){
}
function pepper(){
salt();
}
}
$y = new yoyo();
$y->pepper();
?>
Run Code Online (Sandbox Code Playgroud)像这样运行:
php p.php
Run Code Online (Sandbox Code Playgroud)我们得到错误:
PHP Fatal error: Call to undefined function salt() in
/home/el/foo/p.php on line 6
Run Code Online (Sandbox Code Playgroud)解决方案:使用$this->salt();
而不是salt();
所以这样做:
<?php
class yoyo{
function salt(){
}
function pepper(){
$this->salt();
}
}
$y = new yoyo();
$y->pepper();
?>
Run Code Online (Sandbox Code Playgroud)如果有人可以发布一个链接,说明为什么$必须在类中的PHP函数之前使用它,是的,这将是很好的.
jan*_*z00 22
这是一个开发人员的错误 - 一个错位的结束括号,它使上述函数成为嵌套函数.
我在SO中看到了许多与未定义函数错误相关的问题.让我记下这个答案,以防其他人对功能范围有同样的问题.
我尝试先解决的问题:
很难跟踪括号,因为功能很长 - 遗留系统存在问题.进一步的故障排除步骤如下:
将此标识为某个范围问题.
使用Netbeans折叠(代码折叠)功能检查此功能正上方的功能.因此,上面的1000行函数与此函数一起折叠,使其成为嵌套函数.
一旦发现问题,将功能剪切粘贴到文件末尾,解决了问题.
小智 7
很多时候问题出现是因为php
不支持php.ini
文件中的短打开标记,即:
<?
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
你必须使用:
<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)