简介

看看PHP手册对isset()的先容

isset — 检测变量是否设置

bool isset ( mixed $var [, mixed $... ] )

检测变量是否设置,并且不是 NULL。

php三元PHPisset函数联合三元表达式的小技能用法 SQL

如果已经利用 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的进阶之路」,更多干货,欢迎大家搜索关注