function setNewHomePost($num, $value){
$newHomePost[$num] = $value;
}
這創建名爲$newHomePost
一個local變量,索引處設置一個值,並返回。一旦它返回,局部變量消失。從鏈接的手冊頁:
在函數內部使用的任何變量缺省侷限於本地函數作用域。
你要設置的類成員propertynewHomePost
代替:
function setNewHomePost($num, $value) {
$this->newHomePost[$num] = $value;
}
更新
這是你目前如何定義了get方法:
function getNewHomePost() {
return "ID: " . $this->newHomePost[0];
}
我懷疑你還在擺弄着t他並試圖讓它工作。如果你真的想僅僅只有再回到第0指數,嘗試這樣的東西,而不是:
function getNewHomePost() {
return isset($this->newHomePost[0]) ? $this->newHomePost[0] : null;
}
當建立一個類記住,你不能做什麼命令你的公共方法可以從另一個調用任何假設對象或調用代碼(即使調用代碼本身存在於類內部,方法是公共的,這意味着任何東西都可以調用它們)。上面的代碼沒有任何規定,因爲您不必在getNewHomePost
之前撥打addNewHomePost
。我想如果你看看你的日誌,你可能會看到幾個Notice: Undefined index..
類型的錯誤。
此外,一定要檢查主叫方:
$myClass = new cat_widget;
$myClass->setNewHomePost(0, 'my new home post!');
$homePost = $myClass->getNewHomePost();
echo $homePost ? $homePost : 'None';
我想一個更好的getter方法很可能是這樣的:
function getNewHomePost($i) {
return isset($this->newHomePost[$i]) ? $this->newHomePost[$i] : null;
}
如果用斷章取義的WordPress此代碼不能正常工作 – gpupo