Кратчайший способ вывести 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');