Что делать, если индекс не существует - PullRequest
0 голосов
/ 04 мая 2011

У меня есть оператор if

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

, но иногда массив $selected_products не имеет индекса business .. как я могу изменить условие if без внешнего оператора if

Ответы [ 4 ]

3 голосов
/ 04 мая 2011

Короткое замыкание isset с использованием оператора &&.При оценке короткого замыкания второе выражение не оценивается, если первое не удается.

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

3 голосов
/ 04 мая 2011

Это зависит от того, что вы хотите сделать, если индекс не существует.

Если вы хотите выполнить эту проверку только при наличии индекса, добавьте перед ним проверку isset() (разрыв строки для ясности):

if (isset($selected_products['business'])
    && in_array($product['product_id'], $selected_products['business'])) {

Кроме того, если вам нужно сделать что-то еще в случае отсутствия индекса, присоедините блок else.

2 голосов
/ 04 мая 2011

Используйте логический оператор И &&, чтобы объединить оба выражения:

if (array_key_exists('business', $selected_products) && in_array($product['product_id'], $selected_products['business']))
1 голос
/ 04 мая 2011

Вы можете использовать троичное выражение, хотя эта строка будет немного занята:

<?php if(in_array($product['product_id'], isset($selected_products['business']) ? $selected_products['business'] : false))) { ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...