专业编程基础技术教程

网站首页 > 基础教程 正文

PHP:isset()函数结合三元表达式的小技巧用法

ccvgpt 2024-08-06 12:42:26 基础教程 10 ℃

PHP中isset()函数想必是每个PHPer最常用的一个函数了,它更多是和三元表达式组合着使用,每次在验证数据的有效性时,都是需要它们组合来发挥作用,下面我们来介绍下它们。

简介

看看PHP手册对isset()的介绍

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'])); // TRUE
var_dump(isset($a['foo'])); // FALSE
var_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的进阶之路」,更多干货,欢迎大家搜索关注


Tags:

最近发表
标签列表