首页

一场由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默认为空字符,查询的时候就悲催了。
更多>>
linux下的快捷命令--alias chmod 777后依旧 Permission denied 上传文件时nginx网络状态码499无响应 记一次scp上传文件夹时把服务器io写爆的事故 curl使用注意