为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 7 - 警告:array_column() 期望参数 1 是数组,给定对象

PHP 7 - 警告:array_column() 期望参数 1 是数组,给定对象

PHP
慕的地6264312 2022-06-11 17:13:31
我刚刚在我的项目中发现了一些奇怪的东西。我正在使用 PHP7.3,我正在尝试将array_column()函数与对象一起使用。我正在使用命令来调用 symfony 项目中的服务 - 如果这很重要,但是我已将我的代码简化到最低限度。文章.php:class Article {    private $id;    private $category;    public function __construct()    {        $this->category = new ArrayCollection();    }    public function getCategory(): Collection    {        return $this->category;    }    public function addCategory(ArticleCategory $category): self    {        if (!$this->category->contains($category)) {            $this->category[] = $category;        }        return $this;    }    public function removeCategory(ArticleCategory $category): self    {        if ($this->category->contains($category)) {            $this->category->removeElement($category);        }        return $this;    }}ArticleCategory.phpclass ArticleCategory{    private $id;    private $name;    public function getName(): ?string    {        return $this->name;    }    public function setName(string $name): self    {        $this->name = $name;        return $this;    }我正在尝试将文章的类别作为数组获取 - 对于这种情况,我使用以下内容:$categories = array_column($a->getCategory(), 'name'); //$a is the article object但是,这会引发以下警告: Warning: array_column() expects parameter 1 to be array, object given我已经尝试过的private $name公开_添加功能__get()并__isset()使用private $name但是,这些都不适合我。即使 array_column 应该与 PHP >7 中的对象一起使用?我很感激任何帮助
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

如果你需要数组使用这个$categories = $a->getCategory()->toArray();


如果您需要类别名称数组 - 使用数组映射


$categoriesName = $a->getCategory()->map(function(ArticleCategory $category) { 

    return $category->getName(); 

});


查看完整回答
反对 回复 2022-06-11
  • 1 回答
  • 0 关注
  • 504 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号