文字

PHP 5.6.x 中已废止的特性

从不兼容的上下文调用方法

现在已废止从不兼容的上下文调用方法, 并且产生 E_DEPRECATED 错误 (以前是 E_STRICT )。 在 PHP 的后续版本中可能彻底移除对此特性的支持。

以下是不兼容上下文调用方法的示例:

<?php
class  {
    function 
f () { echo  get_class ( $this ); }
}

class 
{
    function 
f () {  A :: f (); }
}

(new 
B )-> f ();
?>

以上例程会输出:

Deprecated: Non-static method A::f() should not be called statically, assuming $this from incompatible context in - on line 7
B

$HTTP_RAW_POST_DATA 和 always_populate_raw_post_data

使用 always_populate_raw_post_data 会导致在填充 $HTTP_RAW_POST_DATA 时产生 E_DEPRECATED 错误。 请使用 php://input 替代 $HTTP_RAW_POST_DATA , 因为它可能在后续的 PHP 版本中被移除。 设置 always_populate_raw_post_data 为 -1 (这样会强制 $HTTP_RAW_POST_DATA 未定义,所以也不回导致 E_DEPRECATED 的错误) 来体验新的行为。

iconv 和 mbstring 编码设置

iconv 和 mbstring 配置选项中 和编码相关的选项都已废弃, 请使用 default_charset 。 废弃的选项有:

  • iconv.input_encoding
  • iconv.output_encoding
  • iconv.internal_encoding
  • mbstring.http_input
  • mbstring.http_output
  • mbstring.internal_encoding

用户评论:

[#1] ohcc at 163 dot com [2015-11-05 18:22:03]

<?php
    ini_set
('always_populate_raw_post_data',-1);
    
$HTTP_RAW_POST_DATA file_get_contents('php://input');
    echo 
$HTTP_RAW_POST_DATA;
?>

上一篇: 下一篇: