繁体   English   中英

调用另一个函数内部的函数

[英]Calling a function that is inside another function

我有以下文件:

  1. arrayLoader.php
  2. chooseProgram.php

我想打电话从一个函数chooseProgram.php是在另一个函数内部arrayLoader.php

这是我收到的错误消息:

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

arrayLoader.php

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

选择程序.php

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

我已经在Google上搜索了,但是我要么不明白发生了什么,要么我尝试了什么都不起作用。

有人可以帮忙吗? 谢谢。

函数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";
        }
       }
    ?>

因为直到调用abc才定义xyz。

我不知道具有嵌套函数的意义是什么,但是可以通过将父函数更改为类来实现:

arrayLoader.php

class arrayLoader {

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

选择程序.php

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM