文档章节

PHP: isset() function

 四号位
发布于 2017/05/13 01:53
字数 245
阅读 4
收藏 0

isset($var):

$var doesn't exist: returns false
$var exists && $var is null: returns false
$var exists && $var is not null: returns true

!isset($var):

$var doesn't exist: returns true
$var exists && $var is null: returns true
$var exists && $var is not null: returns false

 

array_key_exists($key, $arr):

$arr[$key] doesn't exist: return false
$arr[$key] exists && $arr[$key] is null: return true
$arr[$key] exists && $arr[$key] is  not null: return true

 

Assign default value:

if (!isset($var)) {$var == $default_value;}

OR

$var = isset($var) ? $var : $default_value;

 


比较(场景:若变量没有一个valid值,赋默认值给它):

$var = $_REQUEST[$var] ? $_REQUEST[$var] : $default_value;

AND

$var = isset($_REQUEST[$var]) ? $_REQUEST[$var] : $default_value;

AND

$var = array_key_exists($var, $_REQUEST) ? $_REQUEST[$var] : $default_value;

第1种情形,如果$_REQUEST[$var]的值是0,即使在0为一个valid值的情况下,$var还是会被设为默认值。
第2种情形和第3种情形不同的是,前者null不算为一个valid值,后者null算为一个valid

 

 

 

关于exist和null的说明:

PHP的变量内存分配是隐式的两个过程:
1、为变量分配内存,存入符号表
2、为变量值分配内存

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 1
码字总数 245
作品 0
揭阳
PHP内核中是如何实现 empty, isset 这些函数的?

$TOC$ 叨叨几句 本来这个问题是在oschina上提出的: 但一直没收到合适的答案,所以还是自己下功夫梳理了一下,如果有错误的地方,欢迎交流。 通常的函数是通过ZEND_FUNCTION(xxx) 这种宏定义...

踏雪秋菊
2016/08/22
13
0
分析PHP内核中是如何实现 empty, isset 这些函数的

叨叨几句 本来这个问题是在oschina上提出的: 但一直没收到合适的答案,所以还是自己下功夫梳理了一下,如果有错误的地方,欢迎交流。 通常的函数是通过ZEND_FUNCTION(xxx) 这种宏定义来实现...

扣丁禅师
2015/11/07
0
1
PHP提供了接口,Java客户端怎么写

PHP接口就是后面就是这样的....../www/index.php/Webservice/index; 而且服务端还有验证 private function server_check(){ if (!isset($SERVER['PHPAUTHUSER']) || !isset($SERVER['PHP_AUT......

无间道
2015/02/06
310
1
PHP中的__call()魔术方法2

相信大家在用ThinkPHP开源框架的时候,对Model类的连贯操作方法肯定很感兴趣吧,那今天我们就用PHP中的call()魔术方法去实现对SQL语句select的查询的连贯操作。 代码: <? header("Content-t...

陈仲国
2012/12/24
0
1
PHP面向对象精要

1 使用extends实现继承以及重载、魔术方法的含义 class B extends A 声明的时候B里可以没有A里的方法 调用的时候$b=new B(); $b->A里的方法(); $b->A里的属性=1; $b->B里的方法(); $b->B里的...

晨曦之光
2012/03/09
119
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 鱼生不值得

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念:分享新裤子的单曲《没有理想的人不伤心 (Remix版)》: 《没有理想的人不伤心 (Remix版)》- 新裤子 手机党少年们想听歌,请使劲儿戳...

小小编辑
16分钟前
3
3
arts-week10

Algorithm 905. Sort Array By Parity - LeetCode Review Who’s Afraid of the Big Bad Preloader? 一文读懂前端缓存 一个网络请求3个步骤:请求,处理,响应,而前端缓存主要在请求处响应这两步...

yysue
今天
4
0
00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
5
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
176
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部