PHP - 设置和获取方法

时间:2016-04-06 11:25:20

标签: php oop magento object

我如何设置和获取属性就像这样。

$newObj = new Core;

$newObj->setTitle("Value"); //where title is a property from the Core object
$newObj->getTitle(); 

我是OOP的新手,请帮助。

更新:与magento设置和获取会话的方式相同。

4 个答案:

答案 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

https://eval.in/548500

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(); 

多数民众赞成。