如果索引不存在怎么办?

时间:2011-05-04 16:40:56

标签: php if-statement

我有这个if语句

<?php if(in_array($product['product_id'], $selected_products['business'])) { ?>

但有时数组$selected_products没有索引business ..如何在没有外部if语句的情况下改变if条件

4 个答案:

答案 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))) { ?>