如何在使用php的三元运算符中使用未设置
我想取消设置特定条件的值。如果我使用unset关键字它通过一个error.please任何人在这种情况下帮助我。如何在使用php的三元运算符中使用未设置
$reportHeader = array("name" => !empty($name) ? "Name" : "0",
"number" => !empty($number) ? "Number" : "0");
在这种情况下,我打印的姓名和号码存在如果不存在,我回到0.but我不需要打印0。如果条件不满足,我需要取消设置值。 我想是这样的:
$reportHeader = array("name" => !empty($name) ? "Name" : unset(),
"number" => !empty($number) ? "Number" : unset();
但它通过错误
不能使用unset()
这样,它需要一个变量要传递给它未设置(见PHP documentation而是填充您阵列,其中价值尚未确定,然后使用array_filter
删除索引null
值你不想。
$reportHeader = array(
"name" => !empty($name) ? "Name" : null,
"number" => !empty($number) ? "Number" : null
);
// Now remove the 'unset' values
$reportHeader = array_filter($reportHeader);
是的它正在工作,但有时$ name可能会返回“”(空值)它返回我们要打印他们。但array_filter删除“”也 –
@RaghulRajendran你可能需要使用' isset()'而不是'!empty()'在这种情况下。 – drmonkeyninja
unset()
需要一个或多个ARG uments。所以如果你启用了错误报告功能,并且检查了这个功能的文档,你会自己看到这个。那么问题是,你究竟想要解除什么?
你需要返回一些值作为你的数组的值,没有unset()
成为值(像你目前正在尝试)。如果你只打算要添加的元素,如果该值不为空,你可以做
$reportHeader = array();
!empty($name) ? $reportHeader['name'] = "Name" : null;
!empty($number) ? $reportHeader['number'] = "Number" : null;
这增加值只在您的数组,如果他们是不是空的。
尽管标准if
也很干净 - 仅仅因为可以写成三元运算符,并不意味着它应该。
if (!empty($name))
$reportHeader['name'] = "Name";
您可以简单地使用如下因素代码
!empty($name) ? $reportHeader["name"] = "Name" : "";
!empty($number) ? $reportHeader["number"] = "Number" : "";
什么是你想取消设置?你还没有告诉PHP你想要删除的数组或索引。 – drmonkeyninja
我想删除数组中的索引 –