1.PHP起始与结束现在都必需是以<?php .. >这样子来写. 不能再像以前那样<? ...>了.>  是不是?
2.获取参数$_POST['name'],$_GET['pw']的时候都需要在里面加单引号或双引号, 不能像$_POST[name]这样子写了,是吧?请问,升级到PHP5.3后这样的差异还有多少?  
我之前写的程序都不能在php5.3下跑了.. 
自己也是挺长一段时间没有碰PHP了..希望热心的朋友能够罗列出来它们之间的差异或变化吧.!谢谢!

解决方案 »

  1.   

    5.2和5.3是两个完全独立更新的版本,就是说5.3并不是在5.2.x的版本上更新而来的,而是从5.0更新而来的5.3的新特性很多,我也没详细研究,只列几个SPL是5.3最大亮点
    POSIX Regex 函数被放弃
    magic_quotes_gpc = On/OFF 被废弃(这个影响get/post过来的值)
    ……
    --------------------------------------------------
    PHP 5.3.x 中弃用的功能
    PHP 5.3.0 新增了两个错误等级: E_DEPRECATED 和 E_USER_DEPRECATED. 错误等级 E_DEPRECATED 被用来说明一个函数或者功能已经被弃用. E_USER_DEPRECATED 等级目的在于表明用户代码中的弃用功能, 类似于 E_USER_ERROR 和 E_USER_WARNING 等级. 下面是被弃用的 INI 指令列表. 使用下面任何指令都将导致 E_DEPRECATED 错误. define_syslog_variables 
    register_globals 
    register_long_arrays 
    safe_mode 
    magic_quotes_gpc 
    magic_quotes_runtime 
    magic_quotes_sybase 
    弃用 INI 文件中以 '#' 开头的注释. 
    弃用函数: call_user_method() (使用 call_user_func() 替代) 
    call_user_method_array() (使用 call_user_func_array() 替代) 
    define_syslog_variables() 
    dl() 
    ereg() (使用 preg_match() 替代) 
    ereg_replace() (使用 preg_replace() 替代) 
    eregi() (使用 preg_match() 配合 'i' 修正符替代) 
    eregi_replace() (使用 preg_replace() 配合 'i' 修正符替代) 
    set_magic_quotes_runtime() 以及它的别名函数 magic_quotes_runtime() 
    session_register() (使用 $_SESSION 超全部变量替代) 
    session_unregister() (使用 $_SESSION 超全部变量替代) 
    session_is_registered() (使用 $_SESSION 超全部变量替代) 
    set_socket_blocking() (使用 stream_set_blocking() 替代) 
    split() (使用 preg_split() 替代) 
    spliti() (使用 preg_split() 配合 'i' 修正符替代) 
    sql_regcase() 
    mysql_db_query() (使用 mysql_select_db() 和 mysql_query() 替代) 
    mysql_escape_string() (使用 mysql_real_escape_string() 替代) 
    废弃以字符串传递区域设置名称. 使用 LC_* 系列常量替代. 
    mktime() 的 is_dst 参数. 使用新的时区处理函数替代. 
    弃用的功能: 弃用通过引用分配 new 的返回值. 
    调用时传递引用被弃用. 
    ---------------------------------------------------------
    PHP 5.3.x 保留的功能
    is_a() 函数被保留. 它不再抛出 E_STRICT 错误. -----------------------------------------------------
    新特性
    PHP 5.3.0 提供了广泛的新特性: 添加了命名空间的支持. 
    添加了静态晚绑定支持. 
    添加了跳标签支持. 
    添加了原生的闭包(Lambda/匿名函数)支持. 
    新增了两个魔术方法, __callStatic 和 __invoke. 
    添加了 Nowdoc 语法支持, 类似于 Heredoc 语法, 但是包含单引号. 
    使用 Heredoc 来初始化静态变量和类属性/常量变为可能. 
    可使用双引号声明 Heredoc, 补充了 Nowdoc 语法. 
    可在类外部使用 const 关键词声明 常量. 
    三元运算操作符有了简写形式: ?:. 
    HTTP 流包裹器将从 200 到 399 全部的状态码都视为成功。 
    动态访问静态方法变为可能. 
    异常可以被内嵌. 
    新增了循环引用的垃圾回收器并且默认是开启的. 
    mail() 现在支持邮件发送日志. (注意: 仅支持通过该函数发送的邮件.)
    ----------------------------------------------------------其他请看手册“附录——从 PHP 5.2.x 移植到 PHP 5.3.x”
      

  2.   

    我感到最大的变化是5.3不用pdo可以直接sqlite3
      

  3.   

    php5.3修复了很多bug,部分BUG与安全相关!可以说更加稳定一些了吧!而且5.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($link);
      

  4.   

    楼主说的2个都不是, (1)在php。ini设置一下即可,(2)只要关闭错误即可
    namespace/静态延迟绑定/lambda函数 这个3个是最主要的
      

  5.   

    在php的官方网站应该有楼主要的信息。
      

  6.   

    +++
    应该是这样,上GOOGLE上查了下,也是这么个意思,主要是在OOP方面更新比较多些!