【问题标题】:When looping through object, loop through specific property遍历对象时,遍历特定属性
【发布时间】:2016-05-12 22:30:46
【问题描述】:

例如,我在 laravel 中看到,当循环通过 eloquent 模型时,它只循环通过表属性。例如

$user = new User(1);
foreach($user as $key => $value){
   echo $key.' = '.$value.'<br>';
}

输出会是这样的

id=1
first_name=jone

尽管该类具有其他属性,但它仅循环遍历表列

我的课是这样的

class Model {
  protected $prop1;
  protected $prop2;
  protected $columns = ['id' => 1, 'name' => 'name'];
}

我想实现类似的东西,所以当我创建一个对象并循环它时,例如只循环 $columns 属性

$model = new Model();
foreach($model as $key => $value){
       echo $key.' = '.$value.'<br>';
}

我需要这样的输出

id=1
name=name

【问题讨论】:

  • 有没有想过使用in_arrayif(in_array($key, $this-&gt;columns)) { echo ... }

标签: php laravel


【解决方案1】:

您可以定义 php 如何在 foreach 循环中处理您的对象。 有关文档,请参见此处:http://php.net/manual/en/language.oop5.iterations.php 默认情况下,php 将遍历所有公共属性。

【讨论】:

  • 我们欢迎您对 stackoverflow 的第一个回答。也放一些代码。不要只发布链接。
猜你喜欢
  • 1970-01-01
  • 2012-01-08
  • 2011-12-10
  • 2014-08-09
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多