簡體   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