使用短路获取第一个非空变量

2022-08-30 16:51:47

PHP中的以下内容(基于JS样式)的等效项是什么:

echo $post['story'] || $post['message'] || $post['name'];

因此,如果故事存在,那么发布它;或者如果消息存在发布,等等...


答案 1

它将是(PHP 5.3 +)

echo $post['story'] ?: $post['message'] ?: $post['name'];

对于 PHP 7

echo $post['story'] ?? $post['message'] ?? $post['name'];

答案 2

有一个单行线,但它并不短:

echo current(array_filter(array($post['story'], $post['message'], $post['name'])));

array_filter将返回备选项列表中的所有非空条目。而 current 只是从过滤的列表中获取第一个条目。


推荐