文档章节

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中的__call()魔术方法2

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

陈仲国
2012/12/24
0
1
php中利用redis限制接口请求频率

php中利用redis限制接口请求频率 沧海一粟2018-03-141 阅读 接口PHPredis限制 connect('127.0.0.1', 6379); return $redis; } function getApiLimit($api, $default = '2000') { //接口名称 ......

沧海一粟
03/14
0
0
PHP面向对象精要

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

晨曦之光
2012/03/09
58
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 有一天考拉麻麻拉肚子了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享周汇洋的单曲《Man Srae(曼斯拉之舞)》:美滋滋。。。。 手机党少年们想听歌,请使劲儿戳(这里) 我听了一下 赶紧关了, ...

小小编辑
40分钟前
12
3
oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
6
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
6
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
18
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部