我如何设置和获取属性就像这样。
$newObj = new Core;
$newObj->setTitle("Value"); //where title is a property from the Core object
$newObj->getTitle();
我是OOP的新手,请帮助。
更新:与magento设置和获取会话的方式相同。
答案 0 :(得分:2)
PHP为您提供所谓的魔术方法。您有__get
和__set
魔术方法。
这样可以访问类的其他无法访问的属性,但不能通过setFoo()
和getFoo()
方法调用。如果您希望这样做,您必须为每个属性定义2种方法,或者您可以使用第三种魔术方法__call
。
您将获得作为第一个参数调用的方法的名称,以及其他参数的数组,以便您可以轻松识别调用的操作。一个简短的例子:
public function __call($methodName, $methodParams)
{
$type = substr($methodName, 0, 3);
$property = lcfirst(substr($methodName, 3)); // lcfirst is only required if your properties begin with lower case letters
if (isset($this->{$property}) === false) {
// handle non-existing property
}
if ($type === "get") {
return $this->{$property};
} elseif ($type === "set") {
$this->{$property} = $methodParams[0];
return $this; // only if you wish to "link" several set calls.
} else {
// handle undefined type
}
}
答案 1 :(得分:0)
您可以使用简单的公共方法将值设置为class properties。
class Core {
private $title;
public function setTitle($val) {
$this->title = $val;
}
public function getTitle() {
return $this->title;
}
}
答案 2 :(得分:0)
你需要一个简单的课来做这件事。
<?php
class Core
{
private $title;
public function setTitle($val)
{
$this->title = $val;
}
public function getTitle()
{
return $this->title;
}
}
$newObj = new Core;
$newObj->setTitle("Value");
$newObj->getTitle();
?>
答案 3 :(得分:-1)
首先,你要像这样创建你的课程
<?php
class sampleclass {
private $firstField;
public function getfirst() {
return $this->firstField;
}
public function setfirst($value) {
$this->firstField = $value;
}
}
?>
之后,您可以通过生成类的对象并调用适当的方法来使用这些方法。
调用方法就是这样,
$obj = new sampleclass();
$obj->setfirst( 'value' );
echo $obj->getFirst();
多数民众赞成。