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

使用严格属性类型 PDO::FETCH_CLASS 时处理空值

使用严格属性类型 PDO::FETCH_CLASS 时处理空值

PHP
慕码人2483693 2023-07-01 17:34:02
我正在尝试获取所有行并将其设置为Inventory类。这是我的课程以及我如何获取它class Inventory {  public int $id;  public string $name;  public string $type_of;  public float $weight;}$query = "SELECT * FROM inventories";$inventories = $this->db->prepare($query);$inventories->execute();$inventories = $inventories->fetchAll(PDO::FETCH_CLASS, 'Inventory');在数据库中,该type_of属性可以为空。因此,当我执行代码时,它会抛出错误:类型化属性 Inventory::$type_of 必须是字符串,使用 null有没有办法忽略 null 值并将其转换为其类型默认值。示例:type_of是字符串,当值为null时会变成空字符串。weight是 float,那么它会变成0.0.太感谢了
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

有两种可能的解决方案,您可以将strict_types设置为offin PHP,并且您将不再拥有TypeError您所获得的解决方案,或者您可以保持strict_types设置不变并只需进行以下更改:

public string $type_of;

public ?string $type_of;


查看完整回答
反对 回复 2023-07-01
?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以将类属性声明为可为空和/或具有默认值。


例如:


class Inventory 

{

    public int $id;

    public string $name;

    public ?string $type_of = null;

    public float $weight = 0;

}

查看完整回答
反对 回复 2023-07-01
  • 2 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信