Кратчайший способ вывести 0, если мета не имеет значения / пуст

Надеюсь, что название имеет смысл, у меня есть несколько мета-полей, которые я хочу вывести 0 если они пусты.

В настоящее время я вывожу значения с этим:

<?php meta('some-field'); ?>

Изменить: приведенный выше код будет отображать значение

3 ответа

Решение

Например используйте троичный оператор. После PHP 5.3:

echo meta('some-field') ? : 0;

До PHP 5.3:

echo meta('some-field') ? meta('some-field') : 0;

При условии, meta() пиши и ничего не возвращай...

function callback($buffer) {
    // check if buffer is empty, else return 0
    return (!empty($buffer)) ? $buffer : 0;
}

// turn output buffering on. the output is stored in an internal buffer. 
// The callback function will be called when the output buffer is flushed
ob_start('callback');

meta('some-field');

// Flush the output buffer
ob_end_flush();

рабочий пример: http://phpfiddle.org/main/code/42rr-zh8j


при условии, meta() вернуть значение и ничего не писать...

// Check if meta return value is empty, print meta value else print 0
echo ( !empty(meta('some-field')) ) ? meta('some-field') : 0;

Ты можешь завернуть meta() в вашей собственной функции:

function myMeta($key, $default = '0') {
   $meta = meta($key);
   return empty($meta) ? $default : $meta;
}

и использовать его вместо мета:

myMeta('some-field');
myMeta('some-field', 'other-default-value');
Другие вопросы по тегам