首页

一场由php双问号和空字符串引起的血案

php7开始有了??语法糖,可以简化一些场景的空值和isset判断,例如 $a = ['zhangsan'=>19, 'lisi'=>20]; $b = isset($a['zhangsan'])? $a['zahngsan'] : 'undefined'; 当zhangsan存在的时候取自己的值,否则就给个默认值undefined。这时候用??更简洁,直接 $b = $a['zahngsan'] ?? 'undefined'; 本来是很美好的,但是如果你要做判断的变量不能为空字符,这种就很不适合了。因为 $test = ''; $res = $test ?? 1;这时候$res是等于''的。 我遇到的问题是一次查询里面有开始和结束时间,函数的开始和结束时间默认是空字符串,然后我写了 $start = $stime ?? date('Y-m-d'); 结果$stime默认为空字符,查询的时候就悲催了。
更多>>
js控制台打印东西会影响页面js其他功能引起报错你信吗? 关于ssl证书在苹果和PC上正常却在安卓手机上无法访问的问题 mysql临时关闭binlog PHP在负载均衡条件下获取客户端ip disown 如何让正在执行的命令进入后台执行