php - 是否可以在一次操作中构造 PHP 对象并设置它们的变量?

标签 php oop object constructor

在perl中我习惯了

my $foo = new WhatEver( bar => 'baz' );

现在我想知道是否可以用这种方式构造 PHP 对象。我只看到这个:

my $foo = new WhatEver();
$foo->{bar} = 'baz';

是否可以一步完成?

最佳答案

您可以按如下方式布置您的构造函数:

 class MyClass {
     public function __construct($obj=null) {
         if ($obj && $obj instanceof Traversable || is_array($obj)) {
             foreach ($obj as $k => $v) {
                if (property_exists($this,$k)) {
                    $this->{$k} = $v;
                }
             }
         }
     }
 }

这有一系列缺点:

  • 这是低效的
  • 您创建的变量不会显示在您使用的任何文档软件上
  • 这是对所有形式的懒惰敞开的大门

但是,它也有以下好处:

  • 这可以很安全地扩展
  • 它允许您延迟实现变量
  • 它还允许您设置私有(private)变量,前提是您知道它们的名称。如果不被滥用,在这方面是相当不错的。

关于php - 是否可以在一次操作中构造 PHP 对象并设置它们的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16847776/

相关文章:

php - Index.php 无法在 Facebook 和搜索引擎中正确显示

php - Laravel 获取服务配置的基本 url

PHP - 如何解决错误 "using $this when not in object context"?

java - 我在想什么 OOD 设计模式?

python - 访问对象内存地址

php - 如何使用 php 转义 sql 查询字符串以将其存储在 mysql 表中

php - Adyen API 401 未经授权

java - 从父类构造的扩展类

c# - 从数据网格中获取对象类型

C++ 通过引用传递对象