作为一个oop-newbee我接受了我的极限。我拿了一个包含3个项目的现有示例。
我尝试将我的DB-Content附加到现有数组,但它不起作用。
我试着从App中的任何地方调用我的函数,但是我失败了。
要么我没有找到从开头填充数组的方法,因为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;
}
}
}
答案 0 :(得分:2)
通过self::
访问静态属性,因此您的代码应为:
self::$entries[] = $newdata;
您也可以跳过创建$newdata
数组:
while ($data = $stmt->fetch()) {
self::$entries[] = array(
'id'=>$data['beitragid'],
'title'=>$data['titel'],
'content'=>$data['beitrag']
);
}
答案 1 :(得分: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