php5.3 注意事项说明

php5.3
新特性
1.支持命名空间(namespace)
5.3以前


代码如下:

<?php
class Zend_Db_Table_Select {
//表示当前这个类文件位于Zend/Db/Table下
}

5.3


代码如下:

<?php
namespace Zend/Db/Table
class Select {
}

2.支持延迟静态绑定
5.3以前(__CLASS__获得类名)self::who()


代码如下:

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        self::who();
    }
}
class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}
B::test();
?>

输出A
5.3(__CLASS__获得类名)static::who();


代码如下:

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        static::who(); // 这里实现了延迟的静态绑定
    }
}
class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}
B::test();
?>

输出B
 
3.支持goto语句
多数计算机程序设计语言中都支持无条件转向语句goto,当程序执行到goto语句时,即转向由goto语句中的标号指出的程序位置继续执行。
 
4.支持闭包


代码如下:

<?php
$msg = "hello";
$callback  =  function() use($msg){
    print_r($msg);
}
$msg = "hello world!";
callback($callback);

输出
hello
hello world!

5.新增魔术方法__callStatic()
PHP中原本有一个魔术方法__call(),当代码调用对象的某个不存在的方法时该魔术方法会被自动调用。
新增的__callStatic()方法则只用于静态类方法。当尝试调用类中不存在的静态方法时,__callStatic()魔术方法将被自动调用。

6.新增一种常量定义方式(有时代码出错,如undefined HE,你要看看是否支持const)


代码如下:

<?php
const CONSTANT = 'Hello World';

(0)

相关推荐

  • PHP5.3.1 不再支持ISAPI

    要在IIS6上使用高版本PHP,必须安装fastCGI扩展, Microsoft FastCGI Extension for IIS 5.1 and 6.0 然后让你的IIS6支持fastCGI即可. 然后设定一下php.ini中的CGI and FastCGI参数: fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo=1 cgi.force_redirect =0 cgi.rfc2616_headers=1 然后制作一个批处

  • php5.3 废弃函数小结

    在php5.3被放弃的函数有: ereg();//直接用mb_ereg代替,或是preg_match代替,但是匹配规则需要用/包括起来 eregi();//preg_match代替,在规则后加上i,如:preg_match("/^(style|style_)(.*)*/i", $file); ereg_replace(); set_magic_quotes_runtime(); split(); mysql_close(); // 将不支持全部关闭, 需要改为:mysql_close(

  • PHP5.3与5.5废弃与过期函数整理汇总

    很多PHP程序员都知道,从PHP5.3开始加入了一个新的报错级别DEPRECATED,即将废弃/过期.下面我们来一个个版本梳理一下. 在php5.3被放弃的函数有: call_user_method() //使用 call_user_func() 替代 call_user_method_array() //使用 call_user_func_array() 替代 define_syslog_variables() dl() ereg() //使用 preg_match() 替代 ereg_rep

  • 使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)

    我之前的文章中说过,大多数网站的性能瓶颈不在PHP服务器上,因为它可以简单地通过横向增加服务器或CPU核数来轻松应对(对于各种云主机,增加VPS或CPU核数就更方便了,直接以备份镜像增加VPS,连操作系统.环境都不用安装配置),而是在于MySQL数据库. 如果用 MySQL 数据库,一条联合查询的SQL,也许就可以处理完业务逻辑,但是,遇到大量并发请求,就歇菜了. 如果用 NoSQL 数据库,也许需要十次查询,才能处理完同样地业务逻辑,但每次查询都比 MySQL 要快,十次循环NoSQL查询也许

  • Ubuntu12下编译安装PHP5.3开发环境

    最近项目遇到一个坑爹的事情,一个源码必须使用PHP5.3,但是现在Ubuntu上自带的版本是5.4,降级之后会出各种奇怪的问题,最后没办法,只能一步步在Ubuntu12.04server上自己编译PHP5.3,比繁琐,共享之. 安装Apache2.2 复制代码 代码如下: sudo apt-get install apache2 -y 然后安装MySQL5.5 复制代码 代码如下: sudo apt-get install mysql-server-5.5 -y 接着就是编译依赖环境: 复制代码

  • php5.3 不支持 session_register() 此函数已启用的解决方法

    php从5.2.x升级到5.3.2.出来问题了.有些原来能用的程序报错了.报错内容是Deprecated: Function session_register() is deprecated查了一下是5.3这个session_register就不让用了,降回去?不爽.搜了一把,有个解决方法是写一个函数 复制代码 代码如下: <?php // Fix for removed Session functions function fix_session_register(){ function se

  • php5.3不能连接mssql数据库的解决方法

    本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不支持mssql_connect这个函数连接了,以前我也讲可以使用com接口来实现,现在我再介绍解决php5.3不能连接mssql数据库另一方法. windows系统下,PHP5.3以上的版本已经不支持mssql扩展. 首先http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 点击 get it 下载SQLSRV2

  • php5.3以后的版本连接sqlserver2000的方法

    最近在做一个系统要抓取管家数据库里面的几个表的数据显示在web页面,于是乎上网搜了一下php如何连接sqlserver2000数据库,网上很多教材都是要配置php.ini配置文件,去掉;extension=php_mssql.dll前面的分号";",然后把ext文件里面php_mssql.dll复制粘贴到系统盘system32目录下,然后重启apache服务器即可,然后写连接数据库的代码件:<?php $conn=mssql_connect("服务器",&qu

  • php5.3 goto函数介绍和示例

    goto操作符是PHP5.3+后新增功能,用来跳转到程序的另一位置:用法很简单:goto后面带上目标位置的标志,在目标位置上用目标名加冒号标记,如下: 复制代码 代码如下: goto a;echo '我们';a:    echo 'http://www.jb51.net'; 但是goto的目标位置只能同一文件和作用域[既不能跳转到一个函数和类方法中],当然它可以跳出循环,但是不能跳入循环: 复制代码 代码如下: <?phpfor($i = 0; $i < 3; $i++){    echo $

  • PHP5.3新特性小结

    本文总结分析了PHP5.3新特性.分享给大家供大家参考,具体如下: 1.命名空间 解决了类,函数和常量名冲突的问题 2.静态绑定 继承时父类可以直接调用子类重写父类的方法 class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // 后期静态绑定从这里开始 } } class B extends A { public static funct

随机推荐