91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php7中類型約束的作用

發布時間:2020-07-02 09:29:11 來源:億速云 閱讀:215 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關php7中類型約束的作用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

PHP7之前,函數和類方法不需要聲明變量類型,任何數據都可以被傳遞和返回,導致幾乎大部分的調用操作都要判斷返回的數據類型是否合格。

為了解決這個問題,PHP7引入了類型聲明。

目前有兩類變量可以聲明類型: 形參,返回值。

支持的類型有整形,浮點型,字符串型,布爾型。

如下代碼:

<?php
function study(int $get)
{
    return $get;
}
var_dump(study('ddd'));

為了節省代碼篇幅,為就不寫OOP了,直接以函數為例。

此函數指定了參數類型為int, 而調用的時候傳入'ddd'字符串,因此此代碼運行會產生Fatal error錯誤。

而有些情況,PHP總是不那么認真,如下:

<?php
function study(bool $get)
{
    return $get;
}
var_dump(study('ddd'));

指定參數類型為bool,但是傳入的字符串被轉化成了true,運行后輸出的結果為:bool(true)

如要強制性約束類型,可在文件頭部添加declare聲明:

<?php
declare(strict_types = 1);
function study(bool $get)
{
    return $get;
}
var_dump(study('ddd'));

此時也會產生一個致命錯誤,因為指定的參數類型為bool但是傳入的參數類型為string,只有把'ddd'換成true和false才可以,哪怕是1或0都不行。

接下來介紹一下返回類型聲明:

<?php
declare(strict_types = 1);
function study(bool $get) : int
{
    return (int)$get;
}
var_dump(study(true));

形參的括號后面加冒號加類型即可指定方法返回值的類型,指定了什么類型返回的就是什么類型。

同樣受declare影響,

如果不做類型強制約束,那么PHP會將返回的數據轉化為指定類型的數據再返回,目前差不多只有string無法強轉為int才會報錯。

如果指定了強制約束,那么PHP將不會進行類型轉換,而是進行對比,如類型不同,則報錯。

還有,返回值類型,也可指定對象名,則必須返回指定對象的實例,如:

<?php
class person
{
    private function __construct($name)
    {
        $this->name = $name;
    }
    static function instance(string $name) : person
    {
        return new self($name);
    }
}
person::instance('zhangsan');

這是PHP7的新特性之一:類型聲明。

上述就是小編為大家分享的php7中類型約束的作用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

睢宁县| 德令哈市| 庆云县| 铜川市| 珠海市| 东港市| 阿拉善盟| 昭觉县| 吴江市| 潮州市| 白城市| 丰镇市| 云南省| 伊吾县| 濉溪县| 乳山市| 福泉市| 巢湖市| 郎溪县| 华坪县| 慈利县| 玉林市| 安丘市| 梓潼县| 瑞昌市| 永清县| 安庆市| 乌鲁木齐市| 大荔县| 灵寿县| 北宁市| 日土县| 汾阳市| 乌鲁木齐县| 石棉县| 武城县| 泾川县| 诸暨市| 平昌县| 太原市| 兖州市|