当前位置: 首页 > 面试题库 >

任何将剥离对象属性为null的PHP函数吗?

乜裕
2023-03-14
问题内容

我正在返回从ORM中提取的对象数组的json_encode()。它包含许多具有空值的属性。删除这些为空的属性的最巧妙方法是什么?我想我可以遍历这些属性,看看它们是否为空,然后对该属性进行unset(),但是肯定有一种更优雅的方法吗?


问题答案:

试试这个; 它仅适用于简单对象,但如果它来自ORM,则应该足够简单。

// Strips any false-y values
$object = (object) array_filter((array) $object);

感谢Gordon昨天对另一个问题的回答,给了我这个主意。

这是由

  • 将对象转换为关联数组,其中对象属性是键,其值是数组值
  • 使用带有默认参数的array_filter来删除具有错误(例如,空或null)值的数组条目
  • 将新数组转换回简单对象

请注意,这将删除所有具有空值的属性,包括空字符串,错误的布尔值和0,而不仅仅是空值。您可以更改array_filter调用,如果您想保留那些并且仅远程那些完全为空的。

// Strips only null values
$object = (object) array_filter((array) $object, function ($val) {
    return !is_null($val);
});


 类似资料:
  • 问题内容: 我在PowerPoint演示文稿中有一些链接,由于某种原因,当单击这些链接时,它将向URL添加一个返回参数。好吧,该返回参数导致我的Joomla网站的MVC模式变得混乱。 那么,什么是使用PHP删除此返回参数的有效方法呢? 示例:http: //mydomain.com/index.php?id = 115&Itemid = 283&return = aHR0cDovL2NvbW11b

  • 我在Spring Boot应用程序中使用mapstruct进行映射。我的源对象如下: 在源到目标对象的实际映射之前,我想用null替换所有字符串和源列表的空值(不需要手动映射)? 如何使用mapstruct或任何Java库来实现这一点?

  • 虽然将属性或对象附加到函数对象是完全可能的,但我想知道它是否存在不太明显的问题?我似乎在网上找不到任何具体的东西来谈论这件事。

  • 问题内容: 我正在尝试从解码为PHP对象的JSON数据中获取一个属性。这只是一个YouTube数据API请求,它返回具有内容对象的视频对象。 在做 抛出“意外的T_DNUMBER”-这很合理。但是,如何获得数字属性的值? 我确定我应该知道这一点。提前致谢。 问题答案: 这应该工作:

  • 我已经开始使用PowerShell来完成一些事情,并在PowerShell中使用变量。 我遇到的问题是,当我将变量分配给类中定义的变量时,测试返回而不是。 示例代码: 现在,对未定义变量< code>$test2的测试返回< code>true,因为PowerShell中的每个未定义变量都被赋予了< code>$null。 但是,如果我测试我分配给的对象的属性,则会测试的 是不是因为在PowerS

  • 问题内容: 假设我有以下几点: 我想测试该功能,而无需经历建立连接的麻烦(或装饰者所做的任何事情)。 给定,我如何从中剥离装饰器并获得基础的“未装饰”功能? 问题答案: 在一般情况下,您不能这样做,因为 相当于 这意味着“原始”垃圾邮件甚至可能不再存在。一个(不太漂亮的)hack是这样的: