我很困惑为什么这段代码:
$mapped_class = ( $mapped_field_index = array_search( $field_name, $automapped_header ) !== false ) ? " mapped mapped_to-" . $mapped_field_index : "";
... 始终1
以$mapped_field_index
(适用时)返回
鉴于此,扩展代码:
$mapped_field_index = array_search( $field_name, $automapped_header );
$mapped_class = $mapped_field_index !== false ? " mapped mapped_to-" . $mapped_field_index : "";
... 将正确的搜索索引显示为$mapped_field_index
.
我认为在 PHP 中,IF 上下文中的赋值也被评估为表达式并返回分配的值。这在这两个例子中似乎都是正确的,因为在没有结果$mapped_class
的情况下是空白的。array_search()
但我希望在这两种情况下都$mapped_field_index
包含正确的array_search()
索引,而不是仅仅1
以三元形式(这似乎表明 TRUE 而不是实际的索引)。
三元运算符在这里有贡献吗?