NSA*_*ict 0 php apache subclass parent
我来自Objective-C,面向对象编程只是一个梦想.(至少对于我来说)
我在PHP中有这个问题.我正在尝试创建一个Model-Class来保存我的数据库条目.它看起来像这样:
class Model {
public function __set($name, $value)
{
$methodName = "set" . ucfirst($name);
if (method_exists($this, $methodName)) {
$methodName($value);
} else {
print("Setter method does not exists");
}
}
};
Run Code Online (Sandbox Code Playgroud)
我想将其子类化并创建一个类User.
class User extends Model {
private $userID;
public function userID() {
return $this->userID;
}
public function setUserID($theUserID) {
$this->userID = $theUserID;
}
};
Run Code Online (Sandbox Code Playgroud)
当我打电话时,$user->__set("userID", "12345");我得到以下异常:
致命错误:在Model.class.php中调用未定义的函数setUserID()
$ user对象当然是User对象.为什么我不能从超类中调用方法?
if (method_exists($this, $methodName)) {
$methodName($value);
}
Run Code Online (Sandbox Code Playgroud)
你检查对象中是否存在方法(method_exists($this, $methodName))而不是调用函数,而不是这个对象方法,应该是: $this->$methodName($value);
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |