? 在 true 条件的输出之前,: 在 false 条件的输出之前。
很多人在尝试处理和显示布尔值时会感到困惑。这是一个 demo 使用 echo 和 var_export() 来显示速记条件的输出:
$foo='test_item_1';
var_export(preg_match("/^test_item_([0-9]*)/", $foo, $item)?$foo:!$foo);
echo "\n";
echo preg_match("/^test_item_([0-9]*)/", $foo, $item)?$foo:!$foo;
echo "\n\n---\n\n";
$foo='failing string';
var_export(preg_match("/^test_item_([0-9]*)/", $foo, $item)?$foo:!$foo);
echo "\n";
echo preg_match("/^test_item_([0-9]*)/", $foo, $item)?$foo:!$foo;
echo "\n\n---\n\n";
$foo='';
var_export(preg_match("/^test_item_([0-9]*)/", $foo, $item)?$foo:!$foo);
echo "\n";
echo preg_match("/^test_item_([0-9]*)/", $foo, $item)?$foo:!$foo;
输出:
'test_item_1'
test_item_1 // the string as expected
---
false
// print empty string
---
true
1 // converts true to 1
如您所见,使用echo 可能会导致混淆。 var_export() 讲述了一个非常准确的输出故事。