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


Check and assign value of a PHP object property within an conditional

以下内容在PHP中有效吗:

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

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

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

一般来说,最好用第二种方法。另外,因为如果$object->property是一个错误的值,您会遇到问题。

从左到右测试( )内的所有元素。如果其中一个是false,那么下面的将不会进行测试,因此您不会有任何错误。

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

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