2017-10-15 2 views
0

Nach ein paar Stunden googeln und auf der Suche nach der Antwort, gab ich auf und wurde sehr frustriert mit PHP, keine Unterstützung da draußen auf grundlegende Fehler. Wie auch immer, hier ist meine Funktion, was mache ich falsch?Funktionsname muss ein String PHP sein?

$accessToken = function(){ 
     $array = array(
      "foo" => "bar", 
      "bar" => "foo" 
     ); 

     $obj = json_encode($array); 
     $obj = json_decode($obj); 

     return $obj->foo; 
}; 

$getInfo = function(){ 

     $code = $accessToken(); 
     return $code; 


}; 

$getInfo(); 

ich Fehler

Notice: Undefined variable: accessToken in C:\inetpub\wwwroot\mysite\lab\cfhttp.php on line 43

Fatal error: Function name must be a string in C:\inetpub\wwwroot\mysite\lab\cfhttp.php on line 43

+1

sie nur nennen nehmen 'Funktion accessToken() {}' und 'Funktion getInfo() {}' und sie in der gleichen Weg 'accessToken()' und 'getInfo()' – SuperDJ

+1

$ accessToken ist nicht im Bereich innerhalb $ getInfo() –

+1

_ "keine Unterstützung da draußen auf grundlegende Fehler" _ - Es gibt buchstäblich Tausende von Websites/Tutorials (einschließlich dieser Website) zu erklären fast jede mögliche Fehlermeldung in PHP und wie es funktioniert. In Bezug auf dieses Problem empfehle ich, über [variable scope] (http://php.net/manual/en/language.variables.scope.php) zu lesen. –

Antwort

2

use() in diesem Rahmen eine Variable zu nehmen

$getInfo = function() use ($accessToken) { 
    $code = $accessToken(); 
    return $code; 
}; 

https://3v4l.org/BOtnf

4

$accessToken ist nicht in ihrem Umfang innerhalb $getInfo()

$accessToken = function(){ 
     $array = array(
      "foo" => "bar", 
      "bar" => "foo" 
     ); 

     $obj = json_encode($array); 
     $obj = json_decode($obj); 

     return $obj->foo; 
}; 

$getInfo = function($accessTokenFunction){ 

     $code = $accessTokenFunction(); 
     return $code; 


}; 

$getInfo($accessToken); 
Verwandte Themen