简介
看看PHP手册对isset()的先容
isset — 检测变量是否设置
bool isset ( mixed $var [, mixed $... ] )
检测变量是否设置,并且不是 NULL。
如果已经利用 unset() 开释了一个变量之后,它将不再是 isset()。若利用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要把稳的是一个 NULL 字节(\"大众\0\公众)并不等同于 PHP 的 NULL 常数。
常用的用法
<?php $a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple')); var_dump(isset($a['test'])); // TRUEvar_dump(isset($a['foo'])); // FALSEvar_dump(isset($a['hello'])); // FALSE
三元表达式
(expr1) ? (expr2) : (expr3) ;
表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
其余,PHP7 中,三元表达式有了新的用法:
??是php7新推出的表达式,
$c =$ a ?? $b;等价于$c = isset($a) ? $a : $b;表示如果$a非空,则$c = $a, 如果$a为空,则 $c = $b;isset() 结合 三元表达式的小技巧用法
当我们想判断某个值存在时,则进行赋值,否则该值不变,我们常日会这么写:
$value = 10;$value = isset($get['value']) ? $get['value'] : $value;
当没有$get['value']时,我们是不做处理,但是上面的写法明显是多了一次赋值操作,那么,结合三元表达式,我们可以写成:
$value = 10;isset($get['value']) ? $value = $get['value'] : $value;
这样,只有当$get['value']存在时,我们才对$value进行赋值处理,当$get['value']不存在时,我们不做任何处理,相对上面的写法,少了一次赋值。
总结虽然说上面的小技巧在实际运用中优化的效果不是很明显,但是对付打算机来说,就少了一次运算,对程序来说,实行韶光相对就节省了一次运算韶光。
但是平时我们在编码时,还是以担保程序逻辑精确为主。
本文首发于 微信公号 「phper的进阶之路」,更多干货,欢迎大家搜索关注