验证对象并将其分配给一行中的某些内容

时间:2013-12-04 18:14:26

标签: php validation variables

我正在寻找一种优化方式来做这样的事情:

  • 检查我从函数收到的是什么:
    • 已设置
    • 是一个数组

如果是这样,我想直接将其分配给变量。

对于那个提议,我会做类似的事情:

  • 让我们假设我正在调用一个函数来返回一个数组(或不是)。

    <?php
     $data_table = isset(Api::get($url)) && is_array(Api::get($url)) ? (array)Api::get($url) : array();
    ?>
    

然而,做这样的事情需要三次调用函数:

  • 第一个,检查if语句是否真的返回
  • 第二个检查返回是否为数组
  • 将返回值分配给$ data_table变量

我考虑过做以下事情,但我不确定它是如何运作的:

 <?php
 $data_table = isset($result = Api::get($url)) && is_array($result) ? (array)$result : array();
 ?>

请让我知道你的想法。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用empty()From the manual:

  

如果变量不存在,则不会生成警告。这意味着empty()基本上是!isset($ var)||的简洁等价物$ var == false。

它没有完全检查它是否是一个数组,而是变量(多种类型)是否为空,但它比你正在做的更短。我想如果你想检查数组和isset,那就是你要做的事情 - 没办法解决它。

<?php
$data_table = !empty($result) ? $result : array();
?>