2015-10-27 17 views
0

作爲一個新手,我得到了這個限制。我拿了一個現有的3個項目的例子。 我嘗試將我的數據庫內容追加到現有的數組,但它不起作用。 我嘗試從應用程序中的任何地方調用我的功能,但我失敗了。 要麼我沒有找到從開始填充陣列的方式,因爲private static $entries =不允許調用函數。訪問私有數組

如何使用我的數據填充數組?我該如何正確調用函數pushEntries?

class Model{ 

    private static $entries = array(
     array("id"=>0, "title"=>"Eintrag 1", "content"=>"Ich bin der erste Eintrag."), 
     array("id"=>1, "title"=>"Eintrag 2", "content"=>"Ich bin der ewige Zweite!"), 
     array("id"=>2, "title"=>"Eintrag 3", "content"=>"Na dann bin ich die Nummer drei.") 
    ); 

    public static function pushEntries($layerid = 96) { 
     require_once('/../pdo_dbconnect.php'); 
     $sqlAll = 'select beitrag.* from beitrag,menu where beitrag.seitenid = :layerid order by beitrag.sort'; 
     $stmt = $db->prepare($sqlAll); 
     $stmt->bindParam(':layerid', $layerid); 
     $stmt->execute(); 
     while ($data = $stmt->fetch()) { 
      $newdata = array ('id'=>$data['beitragid'],'title'=>$data['titel'],'content'=>$data['beitrag']);   
      $entries[] = $newdata;  
     } 
    } 
} 

回答

2

靜態屬性通過self::訪問,所以你的代碼應該是:

self::$entries[] = $newdata; 

您也可以跳過創建​​陣列:

while ($data = $stmt->fetch()) { 
    self::$entries[] = array(
     'id'=>$data['beitragid'], 
     'title'=>$data['titel'], 
     'content'=>$data['beitrag'] 
    );   
} 
+0

由於自::做的工作。 – ratmalwer

1

要訪問的靜態屬性和方法,您可以使用示波器解析運算符(::)。

從課堂外,你可以調用public static function pushEntries這樣的:

Model::pushEntries(); 

從教室裏面,你可以調用public static function pushEntries這樣的:

self::pushEntries(); 

將數據添加到了private static $entries數組,您可以在while循環中使用self::$entries[] = $newdata;。關於static關鍵字

更多信息可以在此頁面上找到:http://php.net/manual/en/language.oop5.static.php