我有这个if语句
<?php if(in_array($product['product_id'], $selected_products['business'])) { ?>
但有时数组$selected_products
没有索引business
..如何在没有外部if语句的情况下改变if条件
答案 0 :(得分:3)
如果索引不存在,这取决于你想要做什么。
如果您只想检查索引是否存在,请在其前面添加isset()
检查(为了清晰起见,换行符):
if (isset($selected_products['business'])
&& in_array($product['product_id'], $selected_products['business'])) {
此外,如果您在索引不存在的情况下需要执行其他操作,请附加else
块。
答案 1 :(得分:3)
短暂isset
使用&amp;&amp;运营商。对于短路评估,如果第一个表达式失败,则不评估第二个表达式。
<?php if(isset( $selected_products['business']) && in_array($product['product_id'], $selected_products['business'])) { ?>
答案 2 :(得分:2)
使用logical AND operator &&
组合两个表达式:
if (array_key_exists('business', $selected_products) && in_array($product['product_id'], $selected_products['business']))
答案 3 :(得分:1)
您可以使用三元语句,但该行有点忙:
<?php if(in_array($product['product_id'], isset($selected_products['business']) ? $selected_products['business'] : false))) { ?>