我正在寻找一种优化方式来做这样的事情:
如果是这样,我想直接将其分配给变量。
对于那个提议,我会做类似的事情:
让我们假设我正在调用一个函数来返回一个数组(或不是)。
<?php
$data_table = isset(Api::get($url)) && is_array(Api::get($url)) ? (array)Api::get($url) : array();
?>
然而,做这样的事情需要三次调用函数:
我考虑过做以下事情,但我不确定它是如何运作的:
<?php
$data_table = isset($result = Api::get($url)) && is_array($result) ? (array)$result : array();
?>
请让我知道你的想法。
感谢。
答案 0 :(得分:0)
您可以使用empty()
。 From the manual:
如果变量不存在,则不会生成警告。这意味着empty()基本上是!isset($ var)||的简洁等价物$ var == false。
它没有完全检查它是否是一个数组,而是变量(多种类型)是否为空,但它比你正在做的更短。我想如果你想检查数组和isset,那就是你要做的事情 - 没办法解决它。
<?php
$data_table = !empty($result) ? $result : array();
?>