php 对象在构造函数中定义和设置属性

标签 php oop

是否可以在构造函数中为类定义属性。 例如,我将关联数组传递给类构造函数,并且我希望根据关联数组中的内容来声明和设置该类的属性。

TIA

最佳答案

class Foo{
   function __construct($arr){
       foreach($arr as $k => $v)
          $this->$k = $v;
   }
}

您可以查看constructor/desctructor manualproperties manual .

需要注意的是,由于您没有在类中定义所有属性,因此所有属性都设置为 public ,恕我直言,这有点危险。我认为使用 reflection 可能可以实现同样的目标。我刚刚更深入地检查了反射,这是不可能的(使用 PHP5),因为能够从 PHP6 可能附带的反射中做到这一点是有意义的。

完整样本

<?php
class Foo{
   function __construct($arr){
       foreach($arr as $k => $v)
          $this->$k = $v;
   }
   
   function getBar(){
       return $this->bar;
   }
}

$bar = new Foo(array(
    'bar' => 'bar',
    'foo' => 'foo'
)
);

var_dump($bar->bar);
?>

关于php 对象在构造函数中定义和设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1739825/

相关文章:

ruby-on-rails - 地理编码器 : distance sortable index

java - OOP:在这种情况下扩展/实现如何帮助我

c++ - 当基类不包含数据成员时是否仍然需要虚拟继承?

php - 如何将时间更改为夏令时

PHP:取消链接目录中的所有文件,然后删除该目录

javascript 函数在 cakephp 2 中无法正常工作

javascript - 我怎样才能合并我的 JavaScript 文件并仍然让我的回调等待就绪状态?

oop - 在为其他地方的其他开发人员设计类时,您如何从想法到实现?

php - 使用 php 样式提取 P 标签之间的数据

php - Laravel-5 如何从存储在数据库中的模板发送电子邮件