這篇文章主要介紹了php7標量型別declare用法,結合例項形式分析了php7中標量型別declare的功能、特性與相關使用技巧,需要的朋友可以參考下
php7為了提高執行效率,在函式方法中增加了標量型別(布林、浮點、整型、字元)的申明特性,節省了對資料型別的檢測。
php7 仍然支援弱型別檢測,即仍然可以使用原來的方式宣告形參。
標量宣告有兩種特性:
強制模式(預設):體現在型別轉換上
嚴格模式
模式宣告:declare(strict_types=1);
預設情況值為0,值為1代表為嚴格校驗的模式
可以使用的型別引數:
int-float-bool-string-inte***ces-
array
-callable
作用於形參與返回值型別說明,可選
形參
//強制模式
<?php
/**
* created by phpstorm.
* user: bee
* date: 2016/4/22
* time: 10:17
*/
// php7之前申明方式
function
type_weak(...
$int
)
// 強制模式 php7宣告方式
//強制模式下會將所有實參轉換為整型
function
sum(int ...
$ints
)
echo
type_weak(2,
'3'
,0.11);
echo
""
;
echo
sum(2,
'3'
,0.11);
執行效果圖如下:
//將模式申明為嚴格模式
<?php
/**
* created by phpstorm.
* user: bee
* date: 2016/4/22
* time: 10:17
*/
//declare 必須在檔案首部
declare
(strict_types=1);
// 強制模式(預設)
function
type_weak(...
$int
)
// 強制模式
function
sum(int ...
$ints
)
echo
type_weak(2,
'3'
,0.11);
echo
""
;
//實參存在字串與浮點型,報錯
echo
sum(2,
'3'
,0.11);
執行效果圖如下:
返回值
<?php
/**
* created by phpstorm.
* user: bee
* date: 2016/4/22
* time: 10:17
*/
declare
(strict_types=0);
// 強制模式(預設)
function
type_weak(...
$int
) :int
// 強制模式
function
sum(int ...
$ints
) :int
echo
type_weak(2,
'3'
,0.11);
echo
""
;
echo
sum(2,
'3'
,0.11);
執行效果圖如下:
PHP7型別約束
在php7之前,函式和類方法不需要宣告變數型別,任何資料都可以被傳遞和返回,導致幾乎大部分的呼叫操作都要判斷返回的資料型別是否合格。為了解決這個問題,php7引入了型別宣告。目前有兩類變數可以宣告型別 形參,返回值。支援的型別有整形,浮點型,字串型,布林型。如下 function study int...
PHP7引用型別
php5在引入引用計數後,使用了refcount gc來記錄次數,同時使用is ref gc來記錄是否是引用型別。例如 a hello a zval1 type is string,refcount gc 1,is ref gc 0 這個時候 a指向乙個結構體,主要看refcount gc 1,這就...
php7 匿名繼承類 PHP7中的匿名類使用方法
在php7之後,php中加入了匿名類的特性。匿名類和匿名方法讓php成為了更現代化的語言,也讓我們的 開發工作越來越方便。我們先來看看匿名類的簡單使用。直接定義 obja new class public function getname echo i m obja obja getname 方法中...