我正在尝试获取所有行并将其设置为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
设置为off
in PHP
,并且您将不再拥有TypeError
您所获得的解决方案,或者您可以保持strict_types
设置不变并只需进行以下更改:
从
public string $type_of;
到
public ?string $type_of;
波斯汪
TA贡献1811条经验 获得超4个赞
您可以将类属性声明为可为空和/或具有默认值。
例如:
class Inventory
{
public int $id;
public string $name;
public ?string $type_of = null;
public float $weight = 0;
}
- 2 回答
- 0 关注
- 108 浏览
添加回答
举报
0/150
提交
取消