将心比心,方得人心~

PHP5.4 的一些新特性和新功能以及不兼容。

周洲 2017-04-06 20:54:10

PHP5.4 逐渐稳定、慢慢成为主流,而在 PHP5.3 升级到 PHP5.4 时,需要了解一些新特 性和新功能。 

1.短数组定义语法

<?php
$arr = [1, 'Zhou', 'www.baiduyo.com'];
echo $arr[2];

2.函数访问数组解析 

<?php
function fn() {
   return array('Zhou', 'Jack');
}
//$demo = fn();
//echo $demo[0];
echo fn()[0];
//echo ['Zhou', 'Jack'][0];

3.实例化对象直接访问成员 

<?php
class Demo {
   public function index() {
      echo __CLASS__;
   }
}
(new Demo)->index();
(new Demo())->index();

4.通过数组间接调用对象方法 

<?php
class Demo {
   public function __construct($name) {
      $this->name = $name;
   }
   public function index() {
      return $this->name;
   }
}
$demo = [new Demo('Zhou'), 'index'];
echo $demo();

5.支持 Class::{expr}()语法 

<?php
class Demo {
   public function __construct($name) {
      $this->name = $name;
   }
   public function index() {
      return $this->name;
   }
}

foreach ([new Demo('Zhou'), new Demo('Jack')] as $demo) {
   echo $demo->{'index'}().' ';
}

6.Traits 语法 

<?php
trait Base {
   public function index() {
      parent::index();
      echo 'World!';
      echo 'ID:'.$this->id;
   }
}
class Demo {
   public function index() {
      echo 'Hello ';
   }
}

class MyDemo extends Demo {
   private $id;
   
   public function __construct() {
      $this->id = 123456;
   }
   
   use Base;
}

class YourDemo extends Demo {
   
}

//1.子类的私有属性不能减少冗余
//2.有六个子类,三个子类需要world,三个子类不需要world,那么world就会在三个子类出现冗余

$mydemo = new MyDemo();
$mydemo->index();

echo '<br />';

$youdemo = new YourDemo();
$youdemo->index();

不兼容的部分 

1.魔术引号 get_magic_quotes_gpc()被移除;

更多不兼容的部分请访问官网: 

http://www.php.net/manual/zh/migration54.php


打赏

『微信打赏』

Tag标签php 

我是有底线的