搜索
首页后端开发php教程PHP5.3语言特性_PHP教程
PHP5.3语言特性_PHP教程Jul 21, 2016 pm 02:52 PM
md5php性能提升特性语言

性能提升

php 5.3的总体性能提升了5 - 15%

md5()快了10-15%
Better stack implementation in the engine
Constants移到read-only内存里
exception处理过程改进(简化,opcodes更少)
(require/include)_once改进,去掉重复open
Smaller binary size & startup size with gcc4

新语言特性

__DIR__

在5.3以前,为了获得当前脚本的目录,需要一次函数调用

CODE:
echo dirname(__FILE__); //

在5.3,只需要一个魔术常量__DIR__就解决了。

CODE:
echo __DIR__; // >= PHP 5.3

?:操作符

便捷的?:操作符,可以从两个值/表达式中快速取得非空值。

CODE:
$a = true ?: false; // true
$a = false ?: true; // true
$a = "" ?: 1; // 1
$a = 0 ?: 2; // 2
$a = array() ?: array(1); // array(1);
$a = strlen("") ?: strlen("a"); // 1

__callStatic()

新增了魔术方法__callStatic,功能和__call类似,但是仅对static方法有效。

CODE:
class helper {
        static function __callStatic($name, $args) {
                echo $name.'('.implode(',', $args).')';
        }
}
helper::test("foo","bar"); // test(foo,bar)

动态调用static方法

动态的调用静态方法?动静结合。

CODE:
class helper {
        static function foo() { echo __METHOD__; }
}
$a = "helper";
$b = "foo";
$a::$b(); // helper::foo

Late Static Binding

不知道怎么译,可能留个原文更容易理解。静态方法的事件处理时机有变化,以前是在编译期处理,现在是执行期间处理。

在php 5.3之前,下面的代码会输出一个A,但是这不是咱们要的,whoami方法已经在class B中重新定义,它本该输出B才符合咱们想当然的思维。

CODE:
class A {
   public static function whoami() {
      echo __CLASS__;
   }
   public static function identity() {
     self::whoami();
   }
}
class B extends A {
   public static function whoami() {
      echo __CLASS__;
   }
}
B::identity(); // A

下面代码中使用了static::whoami()来调用静态方法。php 5.3之后,由于__CLASS__是在执行期被处理,那么这个例子中能顺利抓到class B。

CODE:
class A {
   public static function whoami() {
      echo __CLASS__;
   }
   public static function identity() {
      static::whoami();
   }
}
class B extends A {
   public static function whoami() {
      echo __CLASS__;
   }
}
B::identity(); // B = PHP 5.3

mysqlnd

mysqlnd成为php 5.3中的默认mysql驱动,它有如下优点:

mysqlnd更容易编译: 因为它是php源码树的一个组成部分
mysqlnd和php内部机制结合更紧密,是优化过的mysql驱动
mysqlnd更节省内存,从测试结果来看,比传统的mysql扩展节省40%的内存
mysqlnd更快
mysqlnd提供了丰富的性能统计功能
mysqlnd使用了PHP license以避免不必要的版权纠纷

这个改动应同时对mysql和pdo_mysql扩展生效。

mysqlnd是什么

mysqlnd是mysql原装的php驱动

但是PDO_MySQL暂时还不支持mysqlnd,目前只有mysql(i)扩展可以用到

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/371455.htmlTechArticle性能提升 php 5.3的总体性能提升了5 - 15% md5()快了10-15% Better stack implementation in the engine Constants移到read-only内存里 exception处理过程改进(简化,...
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在 Windows 11 上彻底删除不需要的显示语言的方法在 Windows 11 上彻底删除不需要的显示语言的方法Sep 24, 2023 pm 04:25 PM

在同一设置上工作太久或与他人共享PC。您可能会安装一些语言包,这通常会产生冲突。因此,是时候删除Windows11中不需要的显示语言了。说到冲突,当有多个语言包时,无意中按Ctrl+Shift会更改键盘布局。如果不注意,这将是手头任务的障碍。所以,让我们直接进入方法!如何从Windows11中删除显示语言?1.从设置按+打开“设置”应用,从导航窗格中转到“时间和语言”,然后单击“语言和地区”。WindowsI单击要删除的显示语言旁边的省略号,然后从弹出菜单中选择“删除”。在出现的确认提示中单击“

给语言大模型加上综合视听能力,达摩院开源Video-LLaMA给语言大模型加上综合视听能力,达摩院开源Video-LLaMAJun 09, 2023 pm 09:28 PM

视频在当今社交媒体和互联网文化中扮演着愈发重要的角色,抖音,快手,B站等已经成为数以亿计用户的热门平台。用户围绕视频分享自己的生活点滴、创意作品、有趣瞬间等内容,与他人互动和交流。近期,大语言模型展现出了令人瞩目的能力。我们能否给大模型装上“眼睛”和“耳朵”,让它能够理解视频,陪着用户互动呢?从这个问题出发,达摩院的研究人员提出了Video-LLaMA,一个具有综合视听能力大模型。Video-LLaMA能够感知和理解视频中的视频和音频信号,并能理解用户输入的指令,完成一系列基于音视频的复杂任务,

光动嘴就能玩原神!用AI切换角色,还能攻击敌人,网友:“绫华,使用神里流·霜灭”光动嘴就能玩原神!用AI切换角色,还能攻击敌人,网友:“绫华,使用神里流·霜灭”May 13, 2023 pm 07:52 PM

说到这两年风靡全球的国产游戏,原神肯定是当仁不让。根据5月公布的本年度Q1季度手游收入调查报告,在抽卡手游里《原神》以5.67亿美金的绝对优势稳稳拿下第一,这也宣告《原神》在上线短短18个月之后单在手机平台总收入就突破30亿美金(大约RM130亿)。如今,开放须弥前最后的2.8海岛版本姗姗来迟,在漫长的长草期后终于又有新的剧情和区域可以肝了。不过不知道有多少“肝帝”,现在海岛已经满探索,又开始长草了。宝箱总共182个+1个摩拉箱(不计入)长草期根本没在怕的,原神区从来不缺整活儿。这不,在长草期间

吵翻天!ChatGPT到底懂不懂语言?PNAS:先研究什么是「理解」吧吵翻天!ChatGPT到底懂不懂语言?PNAS:先研究什么是「理解」吧Apr 07, 2023 pm 06:21 PM

机器会不会思考这个问题就像问潜水艇会不会游泳一样。——Dijkstra早在ChatGPT发布之前,业界就已经嗅到了大模型带来的变革。去年10月14日,圣塔菲研究所(Santa Fe Institute)的教授Melanie Mitchell和David C. Krakauer在arXiv发布了一篇综述,全面调研了所有关于「大规模预训练语言模型是否可以理解语言」的相关争论,文中描述了「正方」和「反方」的论点,以及根据这些论点衍生的更广泛的智力科学的关键问题。论文链接:https://arxiv.o

GPT4ALL:终极开源大语言模型解决方案GPT4ALL:终极开源大语言模型解决方案May 17, 2023 am 11:02 AM

开源语言模型生态系统正在兴起,这些生态系统为个人提供综合资源以创建用于研究和商业目的的语言应用程序。本文深入研究GPT4ALL,它通过提供全面的搭建模块,使任何人都能开发类似ChatGPT的聊天机器人,从而超越了特定的使用案例。什么是GPT4ALL项目?GPT4ALL可以在使用最先进的开源大型语言模型时提供所需一切的支持。它可以访问开源模型和数据集,使用提供的代码训练和运行它们,使用Web界面或桌面应用程序与它们交互,连接到Langchain后端进行分布式计算,并使用PythonAPI进行轻松集

学Python,还不知道main函数吗学Python,还不知道main函数吗Apr 12, 2023 pm 02:58 PM

Python 中的 main 函数充当程序的执行点,在 Python 编程中定义 main 函数是启动程序执行的必要条件,不过它仅在程序直接运行时才执行,而在作为模块导入时不会执行。要了解有关 Python main 函数的更多信息,我们将从如下几点逐步学习:什么是 Python 函数Python 中 main 函数的功能是什么一个基本的 Python main() 是怎样的Python 执行模式Let’s get started什么是 Python 函数相信很多小伙伴对函数都不陌生了,函数是可

Azure AI的文本转语音功能已经支持41种多语言语音Azure AI的文本转语音功能已经支持41种多语言语音Aug 10, 2023 pm 07:05 PM

Microsoft的AzureAI文本转语音服务允许你将文本转换为不同语言的语音。今年年初,AzureAI文本转语音引入了JennyMultilingual语音,允许客户跨区域设置以一致的角色生成语音。到目前为止,Jenny多语言语音支持14种语言。今天,Microsoft宣布将多语言语音功能扩展到41种语言和口音。今天,Microsoft还宣布了一个新的男声(RyanMultilingual),作为其多语言产品组合的一部分。这些新语音具有输入文本的自动语言预测功能。因此,这消除了手动标记的需要

计算机硬件能直接识别并执行的语言是什么计算机硬件能直接识别并执行的语言是什么Dec 25, 2020 pm 03:16 PM

计算机硬件能直接识别并执行的语言是机器语言。机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一操作码在计算机内部都有相应的电路来完成它。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境