php5.3之前版本升级至5.3以及更高版本后部分语法简单归纳

1. Deprecated: Assigning the return value of new by reference is deprecated in /usr/local/www/uugui/cake/libs/object.php on line 117

  将$dispatcher =& new Dispatcher();这样的语法改成$dispatcher = new Dispatcher();

2. Strict Standards: Non-static method DboFactory::getInstance() should not be called statically in /usr/local/www/uugui/app/common/public.inc.php on line 115

  这是php调用静态方法的语法。

  将$db = DboFactory::getInstance($config);这样的语法改成 $dboFactory = new DboFactory();$db = $dboFactory->getInstance($config); 或者将方法改成静态的(static修饰)

3. Deprecated: Function ereg() is deprecated in /usr/local/www/uugui/app/common/ipcheck.php on line 309

  ereg是php匹配正则表达式的方法,将其替换为preg_match,并在原正则表达式的首尾添加/

  将ereg方法用preg_match替换,$pattern = "^{$v}.*$";if(ereg($pattern,$tablename)) return "internal";改成$pattern = "/^{$v}.*$/";if(preg_match($pattern,$tablename)) return   "internal";

4. Fatal error: Call-time pass-by-reference has been removed in /usr/local/www/uugui/app/models/diagram.php on line 291

  将array_unshift (&$res,array("time"=>date("Y-m-d H:i:s",$curSec),"val"=>0)) ;改成array_unshift ($res,array("time"=>date("Y-m-d H:i:s",$curSec),"val"=>0)) ;

  被调用的方法的参数列表含有&$,将&$替换为$

5. Notice: Undefined variable: string2 in C:\Inetpub\wwwroot\index.php on line 28

  变量未定义或者初始化造成的错误

6. Warning: strftime(): It is not safe to rely on the system's timezone settings.

  在php头部添加方法date_default_timezone_set("PRC");

这些语法问题都可以通过设置php的报错等级将其屏蔽,php设置debug等级的方法可以是php.ini(此方法作用于全局),也可以是在php头部设置error_reporting()这个方法只对当前脚本有效,web工程中index页面中如用了此方法会将php.ini设置覆盖。php.ini还可以设置屏蔽所有debug,配置选项可参看http://php.net/manual/zh/ini.php

 

posted @ 2016-12-18 23:06  shelfy  阅读(755)  评论(0编辑  收藏  举报