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

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

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

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

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

-2

Решение

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

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

До PHP 5.3:

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

Другие решения

при условии, 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;
1

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

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

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

myMeta('some-field');
myMeta('some-field', 'other-default-value');
0
По вопросам рекламы [email protected]