使用成员箭头而不是引用?

时间:2015-08-12 12:52:32

标签: php variables

可能非常小学生问题,我想使用变量,如成员变量而不是引号,我怎么去做?

$something->title

而不是

something("title")

我可以用一个功能来做后者,但我认为如果我可以使用前者,它会更整洁更好。

3 个答案:

答案 0 :(得分:0)

->是PHP中的OOP Construct(成员运算符)。创建$something作为对象,然后初始化它:

class Something {
  public $title;
}

并以这种方式初始化:

$something = new Something;
$something->title = "Whatever";

如果您想在创建过程中初始化,可以使用构造函数:

class Something {
  public $title;
  public function __construct ($newTitle) {
    $this->title = $newTitle;
  }
}

并以这种方式初始化:

$something = new Something("Whatever");

在您的使用案例中......

您想将它用于设置对象。好吧,你可以定义"设置框架这样:

class DataBase {
  private $host;
  private $user;
  // ---
  // ---
  // ---
}

class Settings {
  public $db = new DataBase("host", "user", "pass", "name");
  // ---
  // ---
  // ---
}

$settings = new Settings();

然后对于个人而言,你可以做这样的事情:

$settings->title
$settings->db->connect();

答案 1 :(得分:0)

您需要使用PHP类来定义类并调用其属性:

class Test
{
  var $title;

  public function __construct()
  {
     $this->title = 'hello';
  }

}

$obj= new Test();
echo $obj->title;

答案 2 :(得分:0)

好吧,也许我错过了这一点。

假设我有一个设置表,它有id,name,setting等列,name列包含许多你可能要设置的常规内容,所以site_name,date_format,email_address,meta_title等等,这些东西都可以通过在名称对应的设置列中有一个值,所以我想说...

echo $ setting-> site_name, echo $ setting-> date_format

等...我明白我应该通过使用一个类,但对于我的生活,我不能引用一个表值,我可以引用一个列名。

感谢您的帮助。