检查并分配条件中的PHP对象属性的值

时间:2012-02-17 22:18:45

标签: php

以下是否可以在PHP中使用:

if ($test = $object->property) {
  // Do stuff with $test
}

基本上,即使未设置$ object->属性,PHP仍会发出通知。我想看看是否可以检查是否设置了值并将属性分配给条件中的变量。否则,我必须做这样的事情:

if (isset($object->property) {
  $test = $object->property;
  // Do stuff with $test
}

3 个答案:

答案 0 :(得分:3)

if (isset($object->property) ? $test = $object->property : false) {
  // Do stuff with $test
}

答案 1 :(得分:0)

一般来说,第二种方式更好。另外,如果$object->property是假值,你会遇到问题。

答案 2 :(得分:0)

( )内的所有元素都是从左到右进行测试的。如果一个是假的,那么下面的那个没有经过测试,所以你不会有任何错误。

if ($object && is_object($object) && isset($object->property))
{
    $test = $object->property;
    // Do stuff with $test
}

编辑:重新检查您的问题:您希望在括号内分配$object->property!我问你why so anxious?这种结构很好(我经常使用它),但是当事情变得简单而不是相反的情况时这样做!