注意:未定义的属性-如何避免在PHP中显示该消息?

问题描述 投票:9回答:4

您好,我正在拨打此电话:

$parts = $structure->parts;

Now $ structure在特殊情况下仅具有parts,因此该调用返回空值。很好,我的代码后面有一个if($ parts){...}。不幸的是,代码运行完后,我收到此消息:

注意:未定义的属性:stdClass :: $ parts in ...

如何隐藏此消息?

谢谢!

properties null php-5.3
4个回答
27
投票

[isset函数应完全满足您的需求。

PHP: isset - Manual

示例:

$parts = (isset($structure->parts) ? $structure->parts : false);

4
投票

也许是

$parts = isset($structure->parts) ? $structure->parts : false ;

3
投票

借助property_exists(),您可以轻松地从php文件中删除“未定义的属性”通知。

以下为示例:

if(property_exists($structure,'parts')){ $parts = $structure->parts; }

要了解更多http://php.net/manual/en/function.property-exists.php


0
投票

[2020年降落在这里,但没有人提及:

1. As of PHP 7.0

$parts = $structure->parts ?? false;

2.A frowned-upon practice-the stfu operator

$parts = @$structure->parts;
© www.soinside.com 2019 - 2024. All rights reserved.