当前位置: 首页 > news >正文

PHP isset()函数使用详解,PHP判断变量是否存在

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

isset

  • 一、判断变量是否存在
  • 二、判断变量是否为NULL
  • 三、同时判断多个变量
  • 四、unset()释放变量
  • 五、判断数组元素是否存在
  • 六、判断对象属性是否存在
  • 七、三元表达式

isset() 函数可以检测「变量是否存在」并非NULL。常用来判断变量是否被定义,以避免变量未定义而报错。

语法

bool isset( $var )

参数

  • $var :需要检测的变量

返回值:

isset() 返回一个布尔类型的值。

  • true :变量「已定义」
  • false:变量「未定义」或变量为 NULL 或 变量被 unset()

一、判断变量是否存在

变量「存在」返回 true ,变量「不存在」返回 false

实例:

<?php
$var1 = 'hello world';var_dump(isset($var1));
var_dump(isset($var2));

输出:

bool(true)
bool(false)

二、判断变量是否为NULL

1)当变量赋值为 NULL 时, isset() 也会返回 false

实例:

$var1 = NULL;var_dump(isset($var1));

输出:

bool(false)

2)这里的 NULL 是指PHP的「常量」 NULL ,也就是空的意思,所以会返回 false;字符串类型的变量‘NULL’等,则会返回 true

实例:

$var1 = 'null';
$var2 = 'NULL';
$var3 = '/0';
$var4 = NULL;var_dump(isset($var1));
var_dump(isset($var2));
var_dump(isset($var3));
var_dump(isset($var4));

输出:

bool(true)
bool(true)
bool(true)
bool(false)

三、同时判断多个变量

判断「多个变量」时,使用逗号分隔。

从左往右逐个判断,只要有一个变量不存在或者为NULL或者被 unset() ,就会立刻停止,并会返回 false

实例:

$var1 = 'hello world';var_dump(isset($var1));
var_dump(isset($var1,$var2));

输出:

bool(true)
bool(false)

四、unset()释放变量

unset() 函数「释放变量」后, isset() 也会返回 false

实例:

$var1 = 'hello world';
var_dump(isset($var1));unset($var1);
var_dump(isset($var1));

输出:

bool(true)
bool(false)

五、判断数组元素是否存在


实例:

$array1 = array('a','b');var_dump(isset($array1[0]));

输出:

bool(true)

六、判断对象属性是否存在

isset() 可以判断对象的「公有成员」,但无法判断「私有成员」;因为私有成员外部不可见,也没办法调用。

实例:

class Class1{public $var1 = 'hello public';private $var2 = 'hello private';
}$class1 = new Class1();var_dump(isset($class1->var1));
var_dump(isset($class1->var2));

输出:

bool(true)
bool(false)

七、三元表达式

扩展一个 isset() 配合三元表达式的使用方式

$result = isset($_GET['value']) ? $_GET['value'] : '';

这行代码的意思是:如果接收到参数 value 的值了,就赋值给 $result,否则就给 $result 赋值为空 ‘’。

http://www.lryc.cn/news/93046.html

相关文章:

  • 2021~2022 学年第二学期《信息安全》考试试题(A 卷)
  • 通俗讲解元学习(Meta-Learning)
  • 生成全球定位系统、伽利略和北斗二号的Matlab代码及实际数据捕获文件,为测试功能提供完整信号与频谱
  • Android 14 版本变更总览
  • 内网安全:Cobalt Strike 工具 渗透多层内网主机.(正向 || 反向)
  • ChatGPT 五个写论文的神技巧,让你的老师对你刮目相看!
  • 模型服务文档自动生成,要素追溯关联、结构规范易读|ModelWhale 版本更新
  • 《微服务实战》 第三十一章 ShardingSphere - ShardingSphere-JDBC
  • 【论文阅读】Twin neural network regression is a semi- supervised regression algorithm
  • java之反射机制和注解(更新中......)
  • 【Unity入门】25.入门结课Demo--神鸟大战怪兽
  • HTTP协议基本格式
  • 在 ubuntu 22.04 上配置界面服务器 xrdp
  • 53、基于51单片机蓄电池充电器过充过放保护LCD液晶屏显示系统设计(程序+原理图+PCB源文件+参考论文+参考PPT+元器件清单等)
  • 【C/C++】详解 函数重载和应用
  • WPF开发txt阅读器4:字体控件绑定
  • CoreDX DDS应用开发指南(8)开发订阅应用程序
  • 基于Python的接口自动化-读写配置文件
  • useEffect的基础知识和底层机制
  • chatgpt赋能python:Python中如何加空格
  • 软件测试之路已不再是坦途
  • 扫雷——C语言实现
  • CSS基础学习--6 CSS Text(文本)
  • 高精度电压源的应用场合有哪些
  • Android约束布局
  • selenium基础语法
  • 运行后端SpringBoot项目
  • #如何对待工作中的失误?# 如何对待工作与生活中的失误——一些不成熟的忠告
  • Shell脚本文本三剑客之awk编辑器
  • Focal Loss介绍