在我的 laravel 项目(版本 5.3)中,我在 URL 中发送参数:
&container=0
但是当它进入创建 SQL 查询的 PHP 函数时,它将零视为空并满足此行的空字符串部分:
$containerCL = empty($container) ? '' : "AND SHPTABLE.CNT IN (".implode(',',$container).")";
如果没有为此选择任何选项,我确实想将一个空字符串发送到查询中,但在这种情况下,我需要发送零值,因为我们有一些由实际值标识的记录。我怎样才能让它捕获空参数,但仍然使用零作为查询的实际值?
您可以使用
isset()
功能代替 empty()
。如果变量未设置或为 isset()
,则 false
函数将返回 null
。但是,对于设置为 true
的变量,它将返回 0
,因为 0
是有效的非空值。
$containerCL = !isset($container) ? '' : "AND SHPTABLE.CNT IN (".implode(',',$container).")";