我找不到任何关于我的问题,而搜索。也许我的搜索措辞不恰当。无论如何,我正试图从另一个函数内部从另一个文件调用一个函数,但它不工作。这似乎是一个范围问题。我有以下内容:
File1.php:
<?
function myCoolFunction()
{
// Some really cool stuff in here
}
在File2.php中:
<?
require('File1.php');
// A bunch of stuff
function anotherCoolFunction()
{
// Do some stuff
myCoolFunction();
}
myCoolFunction不存在于anotherCoolFunction中。我可以在File2.php中调用它,但不能在另一个函数中调用。所以我的问题是,如何做到这一点?php中有超全局函数吗?
谢谢你的帮助!
对于初学者,使用function
关键字定义函数
当你以你的方式需要一个文件时,你是在把它的内容放到你所在的文件的作用域中。(名称空间中的文件是另一回事。)
想想你的File2.php
:
<?
require('File1.php');
// A bunch of stuff
function anotherCoolFunction()
{
// Do some stuff
myCoolFunction();
}
与
相同<?
function myCoolFunction()
{
// Some really cool stuff in here
}
// A bunch of stuff
function anotherCoolFunction()
{
// Do some stuff
myCoolFunction();
}
最后,(我这么说是因为我没有在你的代码中看到它)确保你调用了封装函数。例如
$var = anotherCoolFunction();
如果你正确定义了你的函数,它就会起作用
function myCoolFunction()
{
echo 'hello'; // Some really cool stuff in here
}
function anotherCoolFunction()
{
// Do some stuff
myCoolFunction();
}
anotherCoolFunction();
下次尝试启用错误报告
error_reporting(E_ALL);
ini_set('display_errors', 1);
现在可以工作了,要点:不建议使用短标签。如果你找不到错误,不要用stackOverflow,用这个漂亮的ini_set()显示php.ini设置的错误是的. .在声明函数之前不能使用function关键字。
<?php
function myCoolFunction()
{
// Some really cool stuff in here
}
<?php
ini_set("display_error",1);
require('File1.php');
// A bunch of stuff
function anotherCoolFunction()
{
// Do some stuff
myCoolFunction();
}