尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

PHP转Go系列 | PHP8 这些新函数让你眼前一亮

PHP转Go系列 | PHP8 这些新函数让你眼前一亮
📅 发布时间:2026/6/20 6:51:54
说实话,PHP8 中的这三个新函数让字符串检查,变得非常直观,就像让代码说人话一样。这对我们程序员来说是一件大好事,提升可读性,减少 Bug 量,升级到 PHP8 之后,再也不用维护类似的屎山代码了。

大家好,我是码农先森。

在 PHP8 之前做字符串相关的检查操作比较麻烦,可读性也比较差,很容易踩坑。比如 strpos('Hello World', 'World') !== false 这行代码,时常容易看走眼,特别是在遇到紧急问题时,这种代码很让人抓狂。好在现在 PHP8 对相关的函数进行了简化,提高了可阅读性,比如 str_contains('Hello World', 'World') 这样就好理解多了,直接从字面意思就可以快速判断出来结果,这不就是 PHPer 的福音嘛。其实,如果熟悉 Go 的兄弟们就知道,在 Go 语言中从一开始就是这样的用法,这一点还是值得 PHP 语言学习的。当然,我们升级到 PHP8 之后,也可以这么爽快的编程了。

好,我们也来看看,之前的用法和现在 PHP8 做下对比,同时也看下 Go 语言中的用法,多看看不同语言的用法,也可以开拓一下技术视野。

检查字符串包含关系,新的写法简洁了许多。

<?php// 以前的写法
if (strpos('Hello World', 'World') !== false) {
    echo "找到了 World";
}// PHP 8 的新写法
if (str_contains('Hello World', 'World')) {
    echo "找到了 World";
}

PHP8 和 Go 语言中就是类似的用法了。

package mainimport ("fmt""strings"
)func main() {if strings.Contains("Hello, World!", "World") {fmt.Println("找到了 World")}
}

检查字符串的开头,之前的用法,我一眼还真是看不出来,也有可能是我水平菜~~,大佬勿喷。像 str_starts_with 这样用,就容易理解很多了。

<?php// 检查字符串开头
// 以前的写法
if (strpos("Hello, World", "World) === 0) {echo "以 Hello 开头";
}// php8
// 检查字符串开头
if (str_starts_with("Hello, World", "Hello")) {echo "以 Hello 开头";
} 

PHP8 和 Go 语言中用法也是类似了,只是函数名称不一样而已,从字面的意思都很好理解。

package mainimport ("fmt""strings"
)func main() {// 检查字符串开头if strings.HasPrefix("Hello, World", "Hello") {fmt.Println("以 Hello 开头")}
}

检查字符串的结尾,这个和上面的函数一下,没什么区别。

<?php// 以前的写法
// 检查字符串结尾
if (substr("Hello, World", -strlen("World")) === "World") {echo "以 World 结尾";
}// php8
// 检查字符串结尾
if(str_ends_with("Hello, World", "World")) {echo "以 World 结尾";
}

Go 语言中也是类似玩法。

package mainimport ("fmt""strings"
)func main() {// 检查字符串结尾if strings.HasSuffix("Hello, World", "World") {fmt.Println("以 World 结尾")}
}

说实话,PHP8 中的这三个新函数让字符串检查,变得非常直观,就像让代码说人话一样。这对我们程序员来说是一件大好事,提升可读性,减少 Bug 量,升级到 PHP8 之后,再也不用维护类似的屎山代码了。

每一次的升级都是在向好的过程中迈进,PHP8 的新函数不是锦上添花,而是真正能提升开发效率的利器。我们在编程的过程中也要乐于去尝试新的函数,有时候还是能起到事半功倍的效果的。

感谢大家阅读,个人观点仅供参考,欢迎在评论区发表不同观点。


欢迎关注、分享、点赞、收藏、在看,我是微信公众号「码农先森」作者。

相关新闻

  • 代码随想录算法训练营第二天 |209.长度最小的子数组,59. 螺旋矩阵 II
  • 虚拟机5
  • CF2048H Kevin and Strange Operation

最新新闻

  • 猫抓插件:3步搞定浏览器资源嗅探的终极指南
  • MPC866双核通信处理器架构解析与嵌入式网络设备开发实战
  • 存储型XSS漏洞实战解析:从DVWA靶场到安全防御
  • SRC漏洞挖掘实战:从信息搜集到逻辑漏洞的完整攻防指南
  • 深入解析S12P SCI模块:寄存器操作、IrDA与LIN总线硬件支持
  • 基于等变VAE与扩散模型的MOF材料智能生成与优化实践

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号