2014-01-22 40 views
0

我有一個問題,當涉及到使用類,構造函數和功能使用類和函數

我想使用json_encode並回顯數組。 任何人都可以在這裏指出我正確的方向嗎?我真的不知道我做錯了什麼,我認爲這是對的,但我猜不是。任何和所有的幫助表示讚賞。謝謝。

沒有錯誤或輸出。

class information 
{ 

    public $motd, $owner, $greeting; 
    public $array; 

    function __construct($motd, $owner, $greeting){ 
     $this->motd = $motd; 
     $this->owner = $owner; 
     $this->greeting = $greeting; 
    } 

    function test(){ 
     $array = array(
     'motd' => $motd, 
     'owner' => $owner, 
     'greeting' => $greeting 
     ); 
     $pretty = json_encode($array); 
     echo $pretty; 
    } 

} 


$api = new information('lolol','losslol','lololol'); 
$api->test; 
?> 
+3

你需要* *調用了'test'方法。 '$ api-> test();' –

+0

和你的數組將會是空的應該是:motd'=> $ this-> motd, 'owner'=> $ this-> owner, 'greeting'=> $ this - >問候 – Steve

+0

請記住*閱讀*很多代碼,並*測試*更多。那樣的話,你會比第一個問題尋求幫助更好地學習。 – Lucio

回答

3

兩個錯誤:

  1. 你錯過$this

    $array = array(
        'motd' => $this->motd, 
        'owner' => $this->owner, 
        'greeting' => $this->greeting 
    ); 
    
  2. 你需要調用$api->test()
    您當前的代碼僅評估$api->test(這會導致對函數的引用)並將值拋出。

+0

這是我的問題,我很抱歉,這可能是一個帖子的浪費。謝謝。 – BlueFireMedia

+0

@BlueFireMedia沒問題,但請記住接受你發佈的每個問題的答案:[接受答案如何工作?](http://meta.stackexchange.com/a/5235/191400)(如果有的話對你來說似乎足夠的答案) – ComFreek

1

你需要調用test方法,你需要正確地引用變量:

class information 
{ 

    public $motd, $owner, $greeting; 
    public $array; 

    function __construct($motd, $owner, $greeting){ 
     $this->motd = $motd; 
     $this->owner = $owner; 
     $this->greeting = $greeting; 
    } 

    function test(){ 
     $array = array(
     'motd' => $this->motd, // note the $this-> 
     'owner' => $this->owner, // note the $this-> 
     'greeting' => $this->greeting // note the $this-> 
     ); 
     $pretty = json_encode($array); 
     echo $pretty; 
    } 

} 


$api = new information('lolol','losslol','lololol'); 
$api->test(); // note the() 
?>