首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于PHP 7.4,有比isset和ternary更好的方法吗?(数组值和字符串值检查)

对于PHP 7.4,除了使用isset和ternary运算符进行数组值和字符串值的检查,还有其他更好的方法。

一种更好的方法是使用null合并运算符(??)和空合并运算符(??=)。null合并运算符用于检查变量是否为null,如果是null则返回指定的默认值;空合并运算符用于检查变量是否为空,如果为空则返回指定的默认值,并且将默认值赋给变量。

对于数组值的检查,可以使用null合并运算符和空合并运算符的组合来实现。示例代码如下:

代码语言:txt
复制
$value = $array['key'] ?? 'default';

上述代码中,如果$array['key']存在且不为null,则将其值赋给$value;如果$array['key']不存在或为null,则将'default'赋给$value。

对于字符串值的检查,可以使用null合并运算符和空合并运算符的组合,结合trim函数来实现。示例代码如下:

代码语言:txt
复制
$value = trim($string) ?? 'default';

上述代码中,trim函数用于去除字符串两端的空格,然后使用null合并运算符和空合并运算符的组合来检查字符串是否为空。如果$string经过trim处理后不为空,则将其值赋给$value;如果$string经过trim处理后为空,则将'default'赋给$value。

这种方法相比于isset和ternary运算符更简洁,代码更易读。同时,它也适用于其他类型的值的检查。

腾讯云相关产品推荐:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

php7 新增功能实例总结

RFC: https://wiki.php.net/rfc/isset_ternary 64位PHP7字符串长度可以超过2^31次方字节。 增加了Closure::call()方法。...双引号字符串heredocs里面支持使用\u{xxxxx}来声明unicode字符。 define()可以把一个数组定义为常量。 增加了合并比较运算符<= 。...是用于执行isset()检测三元运算快捷方式。 NULL 合并运算符会判断变量是否存在且不为NULL,如果是,它就会返回自身,否则返回它第二个操作数。...增加了ReflectionType类,更好支持新返回标量声明功能。 五、流 windows版本增加了块读取选项。...更多关于PHP相关内容感兴趣读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+

1.3K20

PHP快速入门】 第二节 php基本语法1.什么地方能写PHP代码?2.PHP语句要不要加分号?3.如果本来该加分号地方我没加怎么办?4.PHP有注释?5.PHP变量怎么去定义?5.PHP

其他编程语言一样,变量是存储数据方式,php也有变量。定义变量时候,php永远是$变量名。 定义变量并赋值: $变量名 = ; 在php中,变量大小写是敏感。...常量命名统一用大写,而且不同英文单词需要用_分隔)。 5.PHP字符串拼接也是用加号? 除了PHP,绝大部分编程语言中,字符串拼接都是用加号。 但是 PHP就是不同,它用是点号。...变量拼接字符串情况: ? 其实还有一种更好方法,把变量嵌入在字符串内部(这种情况需要用双引号,不允许用单引号)。 ? 结果是一样php会自动帮你去解析字符串里面的变量。...5.PHP中一些常用内置命令函数 echo : 输出某一个(基本数据类型,不包括数组对象) var_dump() : 可以输出变量详细信息(类型、长度、字面值) isset...所以,对于那种你也不知道是不是存在变量,我们一般就用isset方法去判断一下它存在性,如果存在就直接用,不存在就做别的事情,或者赋一个默认。 7.PHP变量数据类型? 百度一下,你就知道。

1.5K20

微信云托管,我对你们提意见了!| 云托管征文

42db4f35ecd5f6dd49971f26096c694.png 2、问题 PHP版本号为PHP7.4,这里我们只看PHP大版本号(结构功能,漏洞修复咱不考虑),不知道在开发过程使用大家是否因为...PHP 7.4.x 废弃功能 PHP 核心中废弃功能 没有显式括号嵌套三元运算符 嵌套三元操作中,必须明确使用显式括号来决定操作顺序。...> 大括号访问数组字符串索引 使用大括号访问数组字符串索引方式已被废弃。请使用 $var[$idx] 语法来替代 $var{$idx}。...可以用 nl2br(hebrev($str)) 来替代,更好方法是启用 Unicode RTL 来支持。...解决方法:在PHP配置文件中查找expose_php,将设置为Off,PHP版本显示将关闭。

3K61

PHP】英文博客专栏PHP快速入门个人笔记

目录介绍过往历史php是一个怎么样语言设置PHP第一个PHP程序基本类型操作符字符串操作编写注释和数字有关内置函数Array数组arrays常用函数关联数组条件语句循环函数匿名函数值传递地址传递箭头函数使用...map,reduce,filter函数循环数组处理面向对象面向对象讨论如何构建对象属性方法继承重写静态对象比较对象遍历对象克隆魔术方法文件包含文档系统有用常量、函数变量错误异常日期常量枚举PHP...在JAVA领域PHP非常像JSP,但是实际对比会发现要比JSP更灵活方便,也更好用。这个语言内部可自动通过编译器把代码翻译成机器可以认识以及可以运行语言。...'] //'b'可以通过关联数组进行标记key以及value,关联数组同样有比较多操作方法:array_key_exists() to check if a key exists in the arrayarray_keys...WEB应用绝大部分都是POSTGET请求,PHP提供了$_GET, $_POST and $_REQUEST 这些方法$ _GET:对于任何请求,您可以使用 $_ GET 对象访问所有查询字符串数据

2.1K30

3分钟短文 | PHP 判断数组key是否存在,你用isset?赶紧改!

引言 接着我们 PHP 数组操作系列文章继续写。今天说一说如何判断数组key是否存在? 一般大家可能立马想到了那个函数——isset。...但是这个是检测变量是否设置,如果用来检查数组,可能又会一些副作用。 ?...学习时间 其实判断数组键是否存在,有一个一直以来函数 array_key_exists ,检查给定键名或索引是否存在于数组中。...到底哪一个性能更好一些? 简单地说,isset 判断键是否存在,同时也判断键存在时值是否为空。性能当然是快。...对于键 key2,是存在,而是null,所以isset 返回了 false,而 array_key_exists 返回了true,后者才是我们想要结果。

1.4K20

PHP7.0~PHP7.1~PHP7.2~PHP7.3~PHP7.4新特性

PHP7.0新特性 PHP7.1新特性 PHP7.2新特性 PHP7.3新特性 PHP7.4新特性 PHP7.0新特性 1.标量类型声明 标量类型声明有两种模式: 强制 (默认) 严格模式。...它们扩充了PHP5中引入其他类型:类名,接口,数组 回调类型。 PHP标量包含: 字符串(string), 整数 (int), 浮点数 (float), 以及布尔 (`bool`)。..., 因为它使得调用生成器客户端代码可以直接得到生成器(或者其他协同计算)返回, 相对于之前版本中客户端代码必须先检查生成器是否产生了最终然后再进行响应处理 来得方便多了。...对于 void 函数来说,NULL 不是一个合法返回。 复制代码 \k\k "也可用于编号引用,也可用于大于9组号。 PHP7.4新特性 1.类型属性 类属性现在支持类型声明。 <?

15K20

这些常见 PHP 代码性能对比你必须知道

如果你正在寻找在生产中进一步减少执行时间可能性,这将非常有用。让我们来看看哪些 PHP 方法可能会被性能更好方法取代,以及是否有任何成本或权衡。...所有这些方法都在本地 Web 服务器上使用 PHP 7.4 进行了测试 1. 删除重复项 你有一个包含重复项大型数组,并且希望删除它们,以便只有一个具有唯一数组。...平均也有大约 1.5 倍 (30%) 提升。总结:这仅适用于一维数组,因为array_flip会反转键. 2....同样道理也可以应用于 ctype_alpha() 命令 (检查字母字符) ctype_digit() 命令 (检查数字字符)。 4....总结 我们已经看到,即使使用当前 PHP 7.4 (已经比以前 PHP 版本快得多),也有可能使用其他方法进一步提高脚本性能。

1.5K20

PHP 类型判断NULL,空检查

PHP是一种宽松类型编程语言,在函数中对传入参数值“类型”以及”是否为空或者NULL“进行检查是不可缺少步骤。...类型检查PHP5开始,PHP允许对函数参数进行类型约束,即可以约束参数类型为对象,接口,数组(PHP 5.1开始)或者callable(PHP5.4起),但是不可以约束参数类型为标量类型(如...在PHP中可以通过gettypeget_resource_type 两个函数得到变量类型,它们分别返回参数类型资源类型字符串,此时可以直接进行字符串比较来确定类型是否正确。...但是从语义上来说,一个变量”是否已显示初始化“”是否为NULL“是不同概念,在某些场景下使用isset是不合适,比如检查一个函数返回是否为NULL。...此时可以使用"=="”===“来判断它们是否为NULL。 对于"=="”===“,它们直接区别还是很大。对于"==",它认同空字符串,0,false都为NULL。

3.4K20

WordPress PHP 编码规范

WordPress PHP 编码标准对整个 WordPress 社区都适用,但是对于 WordPress 核心代码是强制要求,而对于主题插件,WordPress 则鼓励使用,因为主题插件作者可能会选择遵循别的编码风格...对于开发者来说,如果想根据这个规范去自动检查自己代码,可以使用基于 PHP_CodeSniffer 开发官方 WordPress 编码规范工具。...(real) 在 PHP 7.4 中已被弃用,并在 PHP 8 中被移除。.... class Example_Class_Extended { [...] } 函数参数自解释标志 调用函数时使用字符串而不是 true  false: // 错误 function eat(...没有命名参数,标志是没有意义,每次遇到像上面例子这样函数调用时,我们都必须搜索函数定义才明白什么意思。通过使用描述性字符串而不是布尔,可以使代码更具可读性。

5.5K40

一文看懂 PHP 8 新特性

throw new OffsetDoesNotExist('offset'); 用私有方法继承 以前,PHP 曾经对公共、保护私有方法应用相同继承检查。...换句话说:私有方法应遵循与保护方法公共方法相同方法签名规则。这是没有道理,因为子类将无法访问私有方法。 该 RFC 更改了这个行为,因此不再对私有方法执行这些继承检查。...尤其是对于 ORM,它可以管理一个请求中数百个(乃至数千个)实体。Weak maps(弱映射)可以提供一种更好,对资源更友好方式来处理这些对象。...异常取代了警告 isset偏移量类型非法或为空:TypeError异常取代了警告 unset 中偏移量类型非法:TypeError异常取代了警告 数组字符串转换:警告取代了通知 Resource...($a + $b); 对算术按位运算符进行更严格类型检查PHP 8 之前,可以在数组、资源或对象上应用算术或按位运算符。

2.5K10

封神台一月靶场通关笔记

字符串位置检查:if(stripos(f, 'zkaqzkaq') === FALSE) 这一行代码检查字符串 "zkaqzkaq" 是否在变量 绕过 preg_match:当preg_match遇到数组时...(账号密码不能相同) 对于php强比较弱比较:md5(),sha1()函数无法处理数组,如果传入数组,会返回NULL,所以两个数组经过加密后得到都是NULL,也就是相等。...> 解题 对于php强比较弱比较:md5(),sha1()函数无法处理数组,如果传入数组,会返回NULL,所以两个数组经过加密后得到都是NULL,也就是相等。 Payload ?.../flag'); } } 解题 PHP数组索引是整数,当整数超出 PHP 整数最大时,会发生溢出。.../flag'); else echo 'no'; } 解题 类型检查:强比较(===)检查类型,而弱比较(==)仅检查

28010

【黄啊码】用PHP7性能居然是5.6三倍?赶紧看看它有什么新特性

(1或者0),1表示严格类型校验模式,作用于函数调用返回语句;0表示弱类型校验模式。...这玩意看上去是不是特别熟悉,学习过java或者.net应该特别清楚吧,就是我啥都不用返回,而在php7中返回声明为 void 类型方法要么干脆省去 return 语句,要么使用一个空 return...对于 void 函数来说,NULL 不是一个合法返回。 返回类型还有 void,定义返回类型为 void 函数不能有返回,即使返回 null 也不行。...PHP NULL 合并运算符 PHP 7 新增加 NULL 合并运算符(??)是用于执行isset()检测三元运算快捷方式。..."a"); 结果输出都是 0   -1   1  个人来讲,太空船符号比较鸡肋,毕竟大小我们有比较符号 PHP 常量数组 这个小知识点就不必多讲了,类似与变量数组,只不过php5.6用是const进行声明

1.1K40

十个 PHP 开发者最容易犯错误

更好做法是再次检查 $_POST['active'],即: if ($_POST['active']) { $postData = extractSomething($_POST); } /...上面代码问题在于没有搞清楚通过引用与通过返回数组区别。除非你明确告诉 PHP 通过引用返回一个数组(例如,使用 &),否则 PHP 默认将会「通过」返回这个数组。...确保 PHP 文件也是 UTF-8 编码,以避免在连接硬编码字符串或者配置字符串常量时候产生冲突。...为了避免这些问题产生,更好方法是使用 count() 去检验空数组结构: // 注意这会在 PHP 所有版本中发挥作用 (5.0 前后都是): $array = []; var_dump(count...不幸是,如果类使用魔术方法 __get() 来获取属性,那么就没有万无一失方法检查该属性是否为空。

3K90

易犯错误 | 十个 PHP 开发者最容易犯错误

更好做法是再次检查 _POST['active'],即: if ($_POST['active']) { $postData = extractSomething($_POST); }...上面代码问题在于没有搞清楚通过引用与通过返回数组区别。除非你明确告诉 PHP 通过引用返回一个数组(例如,使用 &),否则 PHP 默认将会「通过」返回这个数组。...确保 PHP 文件也是 UTF-8 编码,以避免在连接硬编码字符串或者配置字符串常量时候产生冲突。...为了避免这些问题产生,更好方法是使用 count() 去检验空数组结构: // 注意这会在 PHP 所有版本中发挥作用 (5.0 前后都是): $array = []; var_dump...不幸是,如果类使用魔术方法 __get() 来获取属性,那么就没有万无一失方法检查该属性是否为空。

4.5K20

PHP常用库函数介绍+常见疑难问题解答

检查用户输入文本是否有效,可以用empty(); (2)empty();——最好用一个函数,用于检查变量是否具有空 定义作用范围:用于检查变量是否具有空:包括:空字串,0,null 或false...可省略参数 base 是转换基底,默认为 10。转换变量 var 可以为数组或类之外任何类型变量。...如果变量是一个数组,则会输出一个格式化后数组,便于阅读,也就是有keyvalue对应那种格式。...对于object对象类同。 print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔TRUE。 例子: 5) sprintf函数     此函数使用方法printf一样,唯一不同就是该函数把格式化字符串写写入一个变量中,而不是输出来。 例子: <?

1.3K80

PHP函数

请点击上面蓝色PHP关注 你知道这些简单函数中方法? count() 函数计算数组单元数目或对象中属性个数。 对于数组,返回其元素个数,对于其他,返回 1。...规定要计数数组或对象。 mode 可选。规定函数模式。可能:0 - 默认。不检测多维数组数组数组)。1 - 检测多维数组。注释:该参数是 PHP 4.2 中加入。 0 - 默认。...可使用 isset() 变量来测试变量是否被设置。 strtr() 函数转换字符串中特定字符。...规定要转换字符串。 from 必需(除非使用数组)。规定要改变字符。 to 必需(除非使用数组)。规定要改变为字符。 array 必需(除非使用 from to)。...一个数组,其中键是原始字符,是目标字符。 如果 from to 长度不同,则格式化为最短长度。 例: <?

2.4K50
领券