class Item {
public $itemname;
somekeyword $error; //The correct keyword I want to find
public function insertData() {
$query = "INSERT INTO table VALUES ('".$this->itemname."')";
try {
//HERE THERE IS A NICE CODE TO EXECUTE THE QUERY AND SO...
return true; //Returns true on success
} catch(PDOExecption e) {
$this->error = $PDOObject->errorInfo();
return false; //Returns false on FAIL but the Object has a property with the error information
}
}
}
如何使属性错误仅对此类方法可更改?我不希望它可以被其他类或文件在外面更改。
关键字“protected”是否可以使其在外部读取但不可更改?
谢谢!
答案 0 :(得分:4)
protected
使得它无法从外部访问,PHP中的属性没有只读关键字,要获得其值,您必须定义getter函数:
class Item {
protected $error;
public function getError(){
return $this->error;
}
}
或使用一些'魔术':
class Item {
protected $error;
public function __get($name){
return $this->$name;
}
}
后一个允许您仅通过$object->error;
访问此属性,但其可读性较低,并且比预定义的函数调用稍慢。
答案 1 :(得分:0)
您要么是私有的还是受保护的。如果您希望它可以通过扩展您的类的类访问,则受保护,否则为private。