php7 教程

標量類型聲明php

 

1. 分爲強制模式和嚴格模式數組

2. 這些類型的函數參數能夠執行聲明session

int, float, bool, string, interfaces, array, callablephp7

 

例如:閉包

function sum(int ...$ints){app

    return array_sum($ints);dom

}yii

print(sum(2,'3',4.1)); //9函數

 

若是在最頭部加上代碼: this

declare(strict_types=1); //設置爲嚴格模式

則會報錯

Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...

 

 

返回類型聲明

 

指定函數返回值的類型

declare(strict_types = 1);

function returnIntValue(int $value): int {

    return $value; // 改成: return $value+1.0;  則會報錯

}

print(returnIntValue(5)); //5

 

 

空合併運算符(??)

 

$info = isset($_GET['name']) ? $_GET['name'] : 'not name';

上面那種寫法, 如今能夠這麼寫:

$info = $_GET[name'] ?? 'not name';

$info = $_GET['name'] ?? $_POST['name'] ?? 'not name';

 

 

 

飛船操做符

 

用於比較兩個表達式。當第一個表達式比第二個表達式分別小於,等於或大於它返回-1,0或1

例如:

print( 1 <=> 1);print("<br/>");

print( 1 <=> 2);print("<br/>");

print( 2 <=> 1);print("<br/>");

返回:

0

-1

1

 

 

define常量數組

 

在php5.6中只能用const定義, 如今能夠用define:

define('cats',['blue cat','white cat','black cat']);

 

 

new class 匿名類

 

$app->setLogger(new class{

    public function log(string $msg){

        print($msg);

    }

});

 

 

Closure::call()

 

將一個閉包函數動態綁定到一個新的對象實例, 並執行該函數

class A{

    private $x = 1;

}

$getX = function(){

    return $this->x;

};

echo $getX->call(new A);

 

 

 

 

 

爲unserialize()提供過濾

 

IntlChar類

 

隨機數

 

string random_bytes (int $length)     生成僞隨機字節

int random_int (int $min, int $max)   生成僞隨機在整數

 

 

use語句

 

從同一個命名空間導入類, 函數, 常量, 而不須要屢次使用use

use com\yiibai\{ClassA, ClassB, ClassC as C};

use function com\yiibai\{fn_a, fn_b, fn_c};

use const com\yiibai\{ConstA, ConstB, ConstC};

 

 

intdiv 函數

 

執行整數除法並返回int

$value = intdiv(10,3);

print($value); //3

 

 

session支持數組參數

 

session_start([

   'cache_limiter' => 'private',

   'read_and_close' => true,

]);

 

 

 

php7棄用的功能

 

1. 類和方法的名稱相同, 不行

class A {

    function A(){

        ...

    }

}

 

2. 不能調用非靜態方法

class A {

    function b(){

        ...

    }

}

A::b(); //錯!

相關文章
相關標籤/搜索