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