PHP函数作用域调用函数内的函数

时间:2014-05-19 18:12:38

标签: php function scope

搜索时我无法找到有关我的问题的任何内容。也许我没有正确地搜索我的搜索。无论如何,我试图从另一个函数内部调用另一个文件中的函数,但它不起作用。这似乎是一个范围问题。我有以下内容:

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中是否存在超级全局函数?

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

如果你正确定义了你的功能

,它会奏效
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);

答案 1 :(得分:0)

对于初学者,请使用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();
}

最后,(我只是说这个,因为我在你的代码中没有看到它)确保你调用封装函数。 E.g。

$var = anotherCoolFunction();

答案 2 :(得分:0)

它现在可以工作了, 要点:不建议使用短标签。 如果你找不到错误不只是stackOverflow它把这个美丽的ini_set()显示错误实用程序设置为php.ini 并且是..你在声明函数之前使用函数关键字。

<?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();
    }