PHP:如何创建对象变量?

2022-08-30 23:57:30

例如,我有这个代码:

class Object{
    public $tedi;
    public $bear;
    ...some other code ...
}

现在,如您所见,此类内部有公共变量。我想做的是以动态方式制作这些变量,并使用类似这样的函数:

private function create_object_vars(){

   // The Array what contains the variables
   $vars = array("tedi", "bear");

   foreach($vars as $var){
      // Push the variables to the Object as Public
      public $this->$var;
   }
}

那么,我应该如何以动态方式创建公共变量呢?


答案 1
$vars = (object)array("tedi"=>"bear");

$vars = new StdClass();
$vars->tedi = "bear";

答案 2

是的,您可以执行此操作。

你几乎是正确的 - 这应该这样做:

private function create_object_vars(){

   // The Array of names of variables we want to create
   $vars = array("tedi", "bear");

   foreach($vars as $var){
      // Push the variables to the Object as Public
      $this->$var = "value to store";
   }
}

请注意,这使用了变量命名,这可能会做一些疯狂和危险的事情!

根据评论,像这样创建的成员将是公开的 - 我相信有一种方法可以创建受保护/私有变量,但它可能并不简单(例如,您可以通过扩展中的C Zend API执行此操作)。


推荐