2010-05-11 2 views
0

Когда я получить поле «текст» массив, я должен сделать что-то вроде этого:есть ли короткий способ получить значение массива в PHP

$text = isset($tab['text'][0])?$tab['text'][0]:""; 

есть любая функция, которая возвращает значение, когда элемент $tab['text'] есть и "" если нет и, разумеется, не извещение в последнем случае.

ответ

1
$text = @$tab['text'][0]; 
//------^ 

Примечание, $text может быть NULL. Чтобы обойти это:

$text = @$tab['text'][0] . ""; 
//------^ 
+0

Это будет возвращать null вместо пустой строки. Оператор управления ошибкой также уродливая вещь :) –

+0

Он делает то, что спросил ОП;) –

0
 

$search_array = array('first' => 1, 'second' => 4); 
if (array_key_exists('first', $search_array)) { 
    echo "The 'first' element is in the array"; 
} 
2

ternary operator?: можно использовать этот способ в PHP 5.3:

return $tab['text'][0] ?: ''; 
+0

Отлично - я не заметил этого изменения в 5.3 до сих пор :) – Flatlin3

+0

Наконец-то я кое-что узнал сегодня! –

+0

К сожалению, не будет ли он генерировать 'E_NOTICE' при определенных конфигурациях error_reporting? –

0

Нет, в PHP нет более короткого способа сделать это. Я предполагаю, что вы ищете что-то вроде javascripts 'var foo = bar || false, но PHP имеет только тернарный оператор, как в вашем примере.

Смежные вопросы