导航:首页 > 编程语言 > php55

php55

发布时间:2022-02-06 12:56:40

A. 是php5.5版本不对吗

现如今有运行在php5.5版本环境的ecshop就会发现一些报错,而且很多空间商也不知道怎么解决,而这并不是php空间的问题。现在给大家讲解一下报错及解决方法报错:preg_replace_callback Requires argument 2, ‘Array’, to be a valid callback
这个报错就是提示:第二个参数不能为数组,只是一个回调,该如何解决呢?首先要找到这个调用的地方,如下:
1 return preg_replace_callback($pattern, $replace, $source);
修改为:
1 return preg_replace_callback($pattern,
2 function ($m){
3 return $this->call_back($m[1]);
4 }
5 $source);
再定义“call_back”回调方法,即可
1 function call_back($matches){
2 return $matches[1].($matches[2]+1);
3 }
问题:
1 preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
其中有段代码:
1 return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source)
此问题是以为php 5.5以上版本抛弃了“preg_replace()”中的 “/e”其实删除掉“/e”即可解决,如下:
view sourceprint?
1 return preg_replace("/{([^\}\{\n]*)}/","\$this->select('\\1');",

B. php5怎么样

2004年7月,PHP5正式版本的发布,标志着一个全新的PHP时代的到来。它的核心是第二代Zend引擎,并引入了对全新的PECL模块的支持。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。另外,在对象的集成等方面也不再存在问题。使用PHP5引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。
在不断更新的同时,PHP5依然保留对旧有的PHP4程序可以运行于PHP5的平台
[PHP5]

PHP5
上而不会出现较大问题。随着MySQL数据库的发展,PHP5还绑定了新的MySQLi扩展模块,它提供了一些更加有效的方法和实用工具用于处理数据库操作。这些方法大都以面向对象的方式实现,同时也极大地提高了基于数据库的Web项目的执行速度。
另外,PHP5中还改进了创建动态图片的功能,目前能够支持多种图片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及内置了对GD2库的支持,因此安装GD2库(主要指UNIX系统中)也不再是件难事,这使得处理图像十分简单和高效。
大多数Web程序开发者依然将XML作为一个彻底的简单数据库使用。PHP5中也采用了一系列简单易用、功能强大的方法处理XML文档。
今天,已经有包括雅虎和亚马逊等在内的数百万网站,以及众多的开发人员和编程爱好者正在使用PHP。从最初的PHP/FI到现在的PHP5,PHP的发展是及其迅猛的,其未来的发展前景也必定令人瞩目。

C. 什么是PHP5

1、PHP语言简介
PHP是“PHP:Hypertext Preprocessor”的缩写,即“超文本预处理器”。PHP是一种功能强大,并且简便易用的脚本语言。
1.1 PHP的发展历史
PHP是一种简单、轻便的服务器端脚本语言。PHP最初是作为一个快速、实用的工具包出现的。1994年,为了在自己的网站上增加一个小巧而实用的访客追踪系统,Rasmus Lerdorf编写了PHP的雏形程序。这是一个用Perl封装的简单工具。由于使用效果并不理想,Rasmus又用C语言重写了这个工具。
后来,更多的人注意到这个轻巧而简便的程序,并且要求增加更多的功能。Rasmus决定发布一个完整的版本,将其命名为Personal Home Page Tools。后来,Rasmus又发布了一个名为FI的可以做SQL查询的工具。
1.1.1 PHP2的发展
1996年Rasmus发布了PHP/FI2.0,这是一个基本完善的PHP程序包。它不仅可以访问数据库,而且可以嵌入HTML页面。此时,PHP/FI2.0以及吸引了大量的程序开发人员。在众多程序员之中,也包括了Zeev Suraski和Andi Gutmans,他们就是后来PHP3的始作者。由于不满足于PHP/FI在大型项目中的表现,Zeev和Andi作了重大的改进。
1.1.2 PHP3的发展
1998年末,PHP3的第一个官方正式版本发行,其特色是具有更好的执行效果以及更清晰的结构。除此之外,PHP3的强大的功能还在于它的可扩展性。除了给最终用户提供数据库、协议和API的基础结构,它的可扩展性吸引了大量的开发人员加入并提交新的模块。
这个全新的语言伴随着一个新的名称发布。这个名称更具广泛意义,而不仅局限于“个人主页工具”的概念。它被命名为简单的缩写“PHP”。这是一种递归的缩写,它的全称是——PHP:Hypertext Preprocessor。
不久,Zeev Suraski和Andi Gutmans投入到了全新的PHP的开发之中。设计目标是增强程序运行性能和PHP自身代码的模块性。
1.1.3 PHP4的发展
新的PHP核心被成为“Zend”(以Zeev和Andi的名字命名)引擎,于2000年5月随着新版PHP4.0发布。PHP4的性能较PHP3有着显着的提高。相同的脚本在PHP4中运行,最高可以有近10倍的性能提升。并且Zend提供了的脚本优化器,可以把源程序转为二进制编译代码,提高性能的同时,也保护了程序源码不被暴露。
在PHP4中增加了对各种Web服务器(如Apache、IIS/PWS及OmniHTTPd等)的支持。此外,PHP4还增加了一些新的语言特性,如丰富的数组操作函数、完整的会话机制、对输出缓存的支持等。PHP4也对一些跨平台的技术提供了扩展支持,如对Adobe pdf、SWF、Java、Microsoft.NET等技术的支持。
PHP4还增加了对类于对象的支持。尽管PHP4在这方面并不完善,但还是大大改善了对面向对象程序设计的支持。PHP4中的Pear库(PHP Extension and Application Repository)就是面向对象的应用与实践的最好例证。
1.1.4 PHP5的发展
尽管PHP4的发展是如此迅猛,但较之于其他流行的开发语言还是缺乏一些关键的功能特性,比如,PHP4中的面向对象功能并不完善,也无法实现异常(Exception)的捕捉与处理。因此在一些特殊问题的处理上还是捉襟见肘的。
2004年7月,PHP5正式版本的发布,标志着一个全新的PHP时代的到来。它的核心是第二代Zend引擎,并引入了对全新的PECL模块的支持。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。另外,在对象的集成等方面也不再存在问题。使用PHP5引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。
在不断更新的同时,PHP5依然保留对旧有的PHP4程序可以运行于PHP5的平台上而不会出现较大问题。随着MySQL数据库的发展,PHP5还绑定了新的MySQLi扩展模块,它提供了一些更加有效的方法和实用工具用于处理数据库操作。这些方法大都以面向对象的方式实现,同时也极大地提高了基于数据库的Web项目的执行速度。
另外,PHP5中还改进了创建动态图片的功能,目前能够支持多种图片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及内置了对GD2库的支持,因此安装GD2库(主要指UNIX系统中)也不再是件难事,这使得处理图像十分简单和高效。
大多数Web程序开发者依然将XML作为一个彻底的简单数据库使用。PHP5中也采用了一系列简单易用、功能强大的方法处理XML文档。

D. PHP5.5 和PHP5.6的区别

PHP5.5 和PHP5.6的区别
摘要:在一个基于Vagrant的本地环境中,可能是某个错误的原因,导致HHVM测试结果很差;在HHVM伙伴们协助下,该原因仍在研究中!然而,在DigitalOcean的一个4GB虚拟机中,HHVM甚至盖过了最新版的PHP-NG的风头!
结论:它们反映出HHVM的功效更佳(在JIT热启动后),虽然出于某些原因,我们不能在所有装备中获取这些结果。
如果你记得我们在几个月前写过一篇文章,那时WordPress 3.9表明是完全支持HHVM的,当时是那么令我们欢欣鼓舞。最初的基准测试结果显示,HHVM要比驱动着当前所有PHP构建的Zend引擎高级得多。后来,问题就出来了:
HHVM只能以单个用户运行,这意味着(在共享环境中)安全性差了
HHVM在崩溃后不会自动重启,而不幸的是,它至今仍然经常发生
HHVM在启动时使用大量内存,虽然,它和同规模的PHP-FPM比较,单个请求的内存使用量更低
很显然,你不得不根据你的(或者更确切地说是你的站点)的需求采取折中方案,然而这值得吗?切换到HHVM后,你期望获得多少性能改善呢?
在Kinsta,我们真的想要测试所有新技术,并通常会优化这一切来为我们的客户提供最佳的环境。今天,我最终花了点时间来配置测试环境并进行了一些测试来对比两个不同的构建,一个是全新出炉的WordPress安装,另外一个则添加了大量内容的WooCommerce!为了计量脚本的运行时间,我只是简单地添加了
<?php timer_stop(1); ?>
这一行到footer.php的/body标记前。
这里是配置环境的详情:
DigitalOcean 4GB 雨滴容器 (2 CPU核心, 4GB RAM)
Ubuntu 14.04, MariaDB10
测试站点: 已导入演示内容的Munditia主题,WooCommerce 2.1.12 & WordPress 3.9.1
PHP 5.5.9, PHP 5.5.15, PHP 5.6.0 RC2, PHP-NG (20140718-git-6cc487d)和HHVM 3.2.0 (版本是PHP 5.6.99-hhvm)
没有进一步大费周章,这些就是我的测试结果,数值越低越好,以秒为单位:
DigitalOcean 4GB 雨滴容器
单位是秒,运行10次,越低越好
看起来似乎PHP-NG在它首次运行后就获得了峰值性能!HHVM需要更多几次重载,但是它们的性能貌似差不多!我等不及PHP-NG合并到开发主干了!:)
一分钟命中数,越高越好。
PHP 5.5.15禁用OpCache
执行: 236 hits
可用性: 100.00 %
消耗时间: 59.03 secs
传输的数据: 2.40 MB
回应时间: 2.47 secs
执行率: 4.00 trans/sec
吞吐量: 0.04 MB/sec
并发数: 9.87
成功的执行: 236
失败的执行: 0
最长执行: 4.44
最短执行: 0.48
PHP 5.5.15启用OpCache
执行: 441 hits
可用性: 100.00 %
消耗时间: 59.55 secs
传输的数据: 4.48 MB
回应时间: 1.34 secs
执行率: 7.41 trans/sec
吞吐量: 0.08 MB/sec
并发数: 9.91
成功的执行: 441
失败的执行: 0
最长执行: 2.19
最短执行: 0.64
PHP 5.6 RC2禁用OpCache
执行: 207 hits
可用性: 100.00 %
消耗时间: 59.87 secs
传输的数据: 2.10 MB
回应时间: 2.80 secs
执行率: 3.46 trans/sec
吞吐量: 0.04 MB/sec
并发数: 9.68
成功的执行: 207
失败的执行: 0
最长执行: 3.65
最短执行: 0.54
PHP 5.6 RC2启用OpCache
执行: 412 hits
可用性: 100.00 %
消耗时间: 59.03 secs
传输的数据: 4.18 MB
回应时间: 1.42 secs
执行率: 6.98 trans/sec
吞吐量: 0.07 MB/sec
并发数: 9.88
成功的执行: 412
失败的执行: 0
最长执行: 1.93
最短执行: 0.34
HHVM 3.2.0(版本是PHP 5.6.99-hhvm)
执行: 955 hits
可用性: 100.00 %
消耗时间: 59.69 secs
传输的数据: 9.18 MB
回应时间: 0.62 secs
执行率: 16.00 trans/sec
吞吐量: 0.15 MB/sec
并发数: 9.94
成功的执行: 955
失败的执行: 0
最长执行: 0.85
最短执行: 0.23
PHP-NG启用OpCache(构建: Jul 29 2014)
执行: 849 hits
可用性: 100.00 %
消耗时间: 59.88 secs
传输的数据: 8.63 MB
回应时间: 0.70 secs
执行率: 14.18 trans/sec
吞吐量: 0.14 MB/sec
并发数: 9.94
成功的执行: 849
失败的执行: 0
最长执行: 1.06
最短执行: 0.13

E. php5.3.5安装

IIS7+PHP_5.3.51. 将下载回来的php_5.3.5解压到 C:\php目录(也可以放在其他地方,但是后面应该做相应修改) 2. 将php.ini-development改名为php.ini3. 修改php.ini 查找data.timezone 修改为date.timezone = “Asia/Shanghai”(这里必须改,不然会出警告) 找到Windows Extensions开启 所需模块,如:php_curl.dll php_mysql.dll php_mysqli.dll php_xmlrpc.dll php_curl.dll 只要去掉前面的 分号 保存就可以了4. 添加<模块映射>这里的路径按你的实际情况填写.5. 在网站根目录新建一个phpinfo.php的文本文件 内容为:<?php
phpinfo();
?>6. 测试,打开浏览器看结果:localhost/phpinfo.php,如果能看到类似下面的页面就说明你成功了:好了,到现在 已经可以成功的运行PHP程序了.

F. php 5.3.5如何安装

从网站下载WINDOWS版本的php压缩包或安装包
(如果是安装包,可以直接安装,则以下操作基本上可以忽略。但为了更好的安全性,建议采用压缩包自己安装配置有关参数)

2. 将下载的php5.0压缩包解压到指定位置,如为C:\PHP5

3. 在c:\php5文件夹中,用记事本打开文件php.ini-dist,修改如下内容后“另存为...”php.ini文件

(1)查找到safe_mode = 段落,将safe_mode = Off修改为safe_mode = On
(2)查找到expose_php = On段落,将expose_php = On修改为expose_php = Off
(3)查找到display_errors = On段落,将display_errors = On修改为display_errors = Off
(4)查找到extension_dir = 段落,设置动态库扩展的路径,如extension_dir = c:\php5\ext
(5)查找到 ; cgi.force_redirect = 1段落,修改为 cgi.force_redirect = 0

提示:(4)和(5)是必须做的。记着要另存为php.ini

4. 将编辑好的php.ini文件剪切到Windows安装文件夹下(如:C:\Winnt 或 C:\Windows)

5. 在IIS中,选择要使用PHP的站点,右键菜单中选择“属性”,选择“主目录”标签,在该界面中点“配置”,添加或重新编辑php扩展的“应用程序扩展名映射”,可执行文件选择为C:\php5\php5isapi.dll,扩展名为php,确定应用后退出IIS配置

6. 停止IIS的WEB站点,并重新启动该站点。

提示:如果是Windows 2003,应增加WEB扩展,将PHP置为允许

G. PHP的PHP5

PHP5在长时间的开发及多个预发布版本后,2004年7月13日,PHP5.0发布。该版本以Zend引擎Ⅱ为引擎,并且加入了新功能如PHP Data Objects(PDO)。PHP5.0版本强化更多的功能。首先,完全实现面向对象,提供名为PHP兼容模式的功能。其次是XML功能,PHP5.0版本支持可直观地访问XML数据、名为SimpleXML的XML处理用界面。同时还强化了XMLWeb服务支持,而且标准支持SOAP扩展模块。数据库方面,PHP新版本提供旨在访问MySQL的新界面——MySQL。除此前的界面外,还可以使用面向对象界面和预处理语句(Prepared Statement)等MySQL的新功能.另外,PHP5.0上还捆绑有小容量RDBMS-SQLite. *构造函数和析构函数 * 对象的引用 * 对象的克隆 * 对象中的私有、公共及受保护模式 * 接口 (Interfaces)
* 抽象类 * __call * __set 和 __get * 静态成员
构造函数和析构函数
在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。
在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。
对象的引用
在PHP4中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号“&;” 来声明是要做一个引用,而不是一个 Copy。在 PHP5中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。
对象的克隆
当一个对象始终以引用的形式来被调用时,如果我想得到该对象的一个副本,该怎么办呢?PHP5 提供了一个新的功能,就是对象的克隆,语法为 __clone。
抽象类
抽象类不能被实例化。
抽象类与其它类一样,允许定义变量及方法。
抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。
__call
PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。
__set 和 __get
这是一个很棒的方法,__set 和 __get 方法可以用来捕获一个对象中不存在的变量和方法。
类型指示
在 PHP5 中,你可以在对象的方法中指明其参数必须为另一个对象的实例。
静态成员
静态成员和静态方法在面象对象编程的术语中被称作 “类方法(class methods)” 和 “类变量(class variables)”。
“类方法” 在一个对象没有实例化前允许被调用。同样,“类变量” 在一个对象没有实例化前可以被独立操作控制(不需要用一个对象的方法来控制)。 异常处理是公认的处理程序错误的理想方法,在 Java及 C 中都有这个概念,我们欣喜的看到,在 PHP5 已经加入了这方面的应用。你可以尝试使用 “try” 和 “catch” 来控制程序的错误。当有错误发生的时候,代码会把错误交给 “catch” 子句来处理,在 “catch” 子句中,你需要指明要把错误交给某个对象处理,这样做可以使代码结构看起来更清晰,因为我们可以把所有的错误信息交给一个对象来处理。
自定义错误处理
你可以很方便的用自定义的处理错误的代码来控制你的程序中的意外。你仅仅需要从异常类中派生出一个自己的错误控制类,在你自己的错误控制类中,你需要有一个构造函数和一个 getMessage 方法。 名称空间对类的分组或函数分组很有用。它可以把一些相关的类或函数给组合到一起,方便以后调用。
例:名称空间 <?phpnamespacemy ame;//参考定义命名空间小节classMyClass{}functionmyfunction(){}constMYCONST=1;$a=newMyClass;$c=newmy ameMyClass;//参考全局空间小节$a=strlen('hi');//参考使用命名空间:后备全局函数/常量小节$d=namespaceMYCONST;//参考namespace操作符和__NAMESPACE__常量”小节$d=__NAMESPACE__.'MYCONST';echoconstant($d);//参考命名空间和动态语言特征小节?>注意你需要在何种情况下使用名称空间,在实际运用中,你可能会需要声明两个或多个名称一样的对象来做不同的事情,那么你就可以把他们分别放到不同的名称空间中去(但接口是要相同的)。 从PHP5.3开始支持ZendGuard加密方式,必须安装Zend Guard Loader,老的zend optimizer将不被支持。
Linux安装Zend Guard Loader支持的过程:
操作系统为CentOS5.5,PHP版本为5.3.8(CentOS5.5中的PHP默认版本较低,如果要升级到PHP最新版,可以使用remi的report源进行升级)。
Windows 下面的 Zend Guard Loader 不支持php5.3.8 VC9 x86 Thread Safe而,php5.3.8 VC9 x86 Non Thread Safe 又不支持 apache。所以安装的话,就需要安装在iis或者和nginx搭配。
1、下载最新的Linux操作系统系下的Zend Guard Loader。
2、上传至Linux服务器并解压缩,注意阅读生成目录下的README文件。全文如下(添加必要的注释)。在/etc/php.d/目录下创建文件zend.ini,内容如下: zend_extension=/usr/lib64/php/moles/ZendGuardLoader.so注意路径一定要写上,刚开始没写路径,老是加载不上ZendGuardLoader .so,也可以直接将上面的配置写入/etc/php.ini文件中,效果一样。
3、重启httpd服务:service httpd restart。
4.输出<?php phpinfo(); ?>
PHP 5.5 正式版发布 不再支持 Windows XP
同时 PHP 开发者也提醒用户,PHP 5.5 也包含一些不向后兼容的内容,包括:不再支持 Windows XP 和 2003 系统;不区分大小写的匹配函数、类;常数名称跟 Locale 无关,这对一些使用非 ASCII 代码的常量名的开发者需要注意的。

H. php5.5 php5.6 哪个好

看你的需要。语言更新知识增加一些新的功能,如果在你的开发过程中,没需要,并不建议使用,因为新版本可能还不稳定,一般5.3够用,如果需要支持一些新的特性,建议用心出的版本

I. php 5.3 跟 5.2 有哪些差别

首先你要区分一下,php5.2和5.3的不同,php5.3的一些语法修改较大,非常不同,也就是5.2的一些程序能运行,有可能到了5.3就不能运行了。而php5.3下的程序可能在5.2下也不能运行。
现在最新的版本是5.5,一般用新不用旧的原则。

J. php5.3与5.3以下版本的区别

Namespaces
php 5.3最大的改动,毫无疑问就是Namespaces(此前有一篇相关的PHP Namespaces FAQ)。这给php开发人员带来的好处不少,广为人们所诟病的函数命名问题也得到了解决。代码更清晰
5.3之前常见的代码,需要自定义前缀区分函数和类名PLAIN TEXTCODE:function MY_wrapper() {}
class MY_DB { }
define('MY_CONN_STR', '');
MY_wrapper();
new MY_DB();
MY_CONN_STR;
使用名称空间之后,代码看上去更加clean。PLAIN TEXTCODE:namespace MY;
function wrapper() {}
class DB { }
const CONN_STR = '';
use MY AS MY;
wrapper();
new DB();
CONN_STR;
一个文件中定义了多个namespace
如果一个文件中定义了多个namespace,应该怎样处理?PLAIN TEXTCODE:namespace LIB;
class MySQL {}
class SQLite {}
$b = new SQLite();
namespace LIB_EXTRA;
class MScrypt {}
$a = new MScrypt();
var_mp(
get_class($a),
get_class($b)
);
以上代码输出为:PLAIN TEXTCODE:string(18)"LIB_EXTRA::MScrypt"
string(11)"LIB::SQLite"
php是解释执行的语言,以上结果合情合理。namespace的优先级
namespace中定义的函数,类和常量优先,其次才是全局的。PLAIN TEXTCODE:namespace foo;
function strlen($foo) { return htmlentities($foo); }
echo strlen("test"); // test
echo ::strlen("test"); // 4
echo namespace::strlen("test"); // test
namespace和autoload的友情
autoload会根据namespace名称以及class名称来解析类文件位置
仅当namespace和全局范围都没找到class定义的情况下,autoload才会被触发
在namespace中定义的__autoload不会被自动调用
PLAIN TEXT

CODE:
function __autoload($var) { var_mp($var); } // LIB::foo
require "./ns.php"; /*
<?php
namespace LIB;
new foo();
*/
namespace一些辅料
PLAIN TEXTCODE:namespace really::long::pointlessly::verbose::ns;
__NAMESPACE__; // 新增的魔法常量,表示当前namespace名称
class a{}
get_class(new a()); // really::long::pointlessly::verbose::ns::a
use really::long::pointlessly::verbose::ns::a AS b;// 从名称空间中引用一个类
注:这里的内容节选自pdfIntroction to PHP 5.3 Slides,后文不再复述。性能提升
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以前,为了获得当前脚本的目录,需要一次函数调用PLAIN TEXTCODE:echo dirname(__FILE__); // < PHP 5.3
在5.3,只需要一个魔术常量__DIR__就解决了。PLAIN TEXTCODE:echo __DIR__; // >= PHP 5.3
?:操作符
便捷的?:操作符,可以从两个值/表达式中快速取得非空值。PLAIN TEXTCODE:$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方法有效。PLAIN TEXTCODE:class helper {
static function __callStatic($name, $args) {
echo $name.'('.implode(',', $args).')';
}
}
helper::test("foo","bar"); // test(foo,bar)
动态调用static方法
动态的调用静态方法?动静结合。PLAIN TEXTCODE: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才符合咱们想当然的思维。PLAIN TEXTCODE: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 <-- PHP <5.3
下面代码中使用了static::whoami()来调用静态方法。php 5.3之后,由于__CLASS__是在执行期被处理,那么这个例子中能顺利抓到class B。PLAIN TEXTCODE: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驱动但是PDO_MySQL暂时还不支持mysqlnd,目前只有mysql(i)扩展可以用到之前介绍的php 5.3的新特性,都是方便开发人员的东东。下面介绍个很讨虚拟主机提供商喜欢的特性。增强的ini文件支持
CGI/ FastCGI支持类似.htaccess的INI配置
每个目录下都可以有INI设置,ini的文件名取决于php.ini的配置,但是[PATH=/var/www/domain.com], [HOST=www.domain.com]段落的设置用户不能修改。
增强的error handling
允许在ini文件中定义变量和常量,可以在程序中直接调用。
附上一段ini文件的例子PLAIN TEXTCODE:#用户自定义的php.ini文件名(.htaccess). 默认是".user.ini"
user_ini.filename=".user.ini"

#如果要禁用这个特性,设置为空值即可
user_ini.filename=

#用户自定义的php.ini文件TTL时长(time-to-live),单位为秒,我理解为缓存过期时间。默认为300秒
user_ini.cache_ttl=300

[PATH=/var/www/domain.com]
variables_order = GPC
safe_mode =1

[my variables]
somevar = “1234”
anothervar = ${somevar}; anothervar == somevar

[ini arrays]
foo[bar]=1
foo[123]=2
foo[]=3

阅读全文

与php55相关的资料

热点内容
穿搭技巧app卡色配什么颜色 浏览:589
程序员得结石 浏览:124
查公司薪资的app叫什么 浏览:407
压缩包多个文件夹图片连续看 浏览:480
linuxmysql无法用命令启动 浏览:439
地税身份认证用什么ApP 浏览:529
网址加密后能防止被封网吗 浏览:759
pic单片机项目 浏览:177
oppo手机忘记加密密码忘了怎么办 浏览:151
算法竞赛入门经典代码 浏览:155
多功能防盗加密锁闭阀 浏览:862
遥控灯单片机 浏览:813
网络时间同步算法 浏览:473
单片机p1口怎么检测 浏览:913
pdf高亮颜色 浏览:322
银行程序员的工资多少 浏览:19
服务器如何使用移动硬盘 浏览:533
pc饥荒为什么没有服务器 浏览:442
阿里云服务器地址是什么 浏览:148
如何戒除网瘾app 浏览:955