调用另一个函数内的函数

时间:2016-01-30 11:15:28

标签: php arrays function fatal-error

我有以下文件:

  1. arrayLoader.php
  2. chooseProgram.php
  3. 我想调用来自chooseProgram.php中另一个函数内的arrayLoader.php的函数。

    以下是我收到的错误消息:

      

    致命错误:在第6行的C:\ xampp \ htdocs \ testing \ chooseProgram.php中调用null上的成员函数loadTitles()

    arrayLoader.php

    function arrayLoader() {
        $arrayLoad = (file_get_contents("../files/TEMP_Array"));
        function loadTitles() {
            return $arrayLoad;
        }
        return;
    }
    

    chooseProgram.php

    require('../tools/arrayLoader.php');
    print "<pre>";
    print_r(arrayLoader()->loadTitles());
    print "</pre>";
    

    我用谷歌搜索了,但我要么不明白发生了什么,要么我尝试了什么都行不通。

    有人可以帮忙吗?感谢。

2 个答案:

答案 0 :(得分:0)

函数loadTitles依赖于arrayLoader,所以你应该先调用arrayLoader然后再调用loadTitles。

即。它会起作用。

    <?php
    abc();
    xyz();
       function abc(){
        echo "abc";
        function xyz(){
            echo "xyz";
        }
       }
    ?>

它不起作用

    <?php
    xyz();
       function abc(){
        echo "abc";
        function xyz(){
            echo "xyz";
        }
       }
    ?>

因为没有定义xyz,所以不会调用abc。

答案 1 :(得分:0)

我不知道嵌套函数有什么意义,但这可以通过将父函数更改为类来完成:

arrayLoader.php

class arrayLoader {

   function loadTitles() {
       $arrayLoad = (file_get_contents("../files/TEMP_Array"));
       return $arrayLoad;
   }
}

chooseProgram.php

require('../tools/arrayLoader.php');
$obj=new arrayLoader;
$result=$obj->loadTitles();
print "<pre>";
print_r($result);
print "</pre>";