ホームページ > バックエンド開発 > PHP7 > php7で強い型モードを有効にする方法

php7で強い型モードを有効にする方法

醉折花枝作酒筹
リリース: 2023-02-17 22:54:01
転載
2859 人が閲覧しました

この記事では、php7 で強い型モードを有効にする方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

php7で強い型モードを有効にする方法

php が弱い型指定のプログラミング言語であることはわかっていますが、php7 は変更され、強い型指定モードを有効にするコードをサポートできるようになりました。

php7 は強い型モードをオンにします。これが、php7 が以前のバージョンに比べて効率が向上した理由の 1 つです。最初に 2 つの例を見てみましょう

First

<?php
function sum($a,$b):float
{
        return $a+$b;
}
var_dump(sum(1,2));
var_dump(sum(1,2.5));
?>
ログイン後にコピー

出力結果は次のとおりです。

float(3) float(3.5)
ログイン後にコピー

次に、strong type モードを追加します。

<?php
define(strict_types=1);//注意这一句必须要放在第一行,而且顶格
function sum($a,$b):float
{
        return $a+$b;
}
var_dump(sum(1,2));
var_dump(sum(1,2.5));
?>
ログイン後にコピー

出力結果は次のとおりです。

float(3) float(3.5)
ログイン後にコピー

ここからは違いがないようです。 >float 型変換は許可されます。

別の例を見てみましょう:

function sum(int $a,int $b):float
{
        return $a+$b;
}
var_dump(sum(1,2));
var_dump(sum(1,2.5));
ログイン後にコピー

出力結果は次のとおりです:

float(3) float(3)
ログイン後にコピー

これは、2.5 が強制的に int 型に変換されるため、値は 2, 1 になります。 2=3、結果に問題はありませんが、一般に、この暗黙的な変換は理解するのが非常に難しく、期待した結果にならない可能性があります。

そこで、出力結果を確認するために強い型モードを追加します。コードは次のとおりです:

<?php
declare(strict_types=1);
function sum(int $a,int $b):float
{
        return $a+$b;
}
var_dump(sum(1,2));
var_dump(sum(1,2.5));
?>
ログイン後にコピー

出力結果は次のとおりです:

float(3)
Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, float given, called in /home/www/learn.php on line 8 and defined in /home/www/learn.php:3 Stack trace: #0 /home/www/learn.php(8): sum(1, 2.5) #1 {main} thrown in /home/www/learn.php on line 3
ログイン後にコピー

ここでわかります。強型モードが有効である sum(1,2.5) 文に誤りがある 2.5 は int 型ではないため、プログラムでエラーが発生する

この状況が発生した場合は、例外をキャッチしてこのエラーをキャッチしましょう

コードは次のとおりです:

<?php
declare(strict_types=1);
function sum(int $a,int $b):float
{
        return $a+$b;
}
try {
var_dump(sum(1,2));
var_dump(sum(1,2.5));
}
catch(TypeError $e) {
        echo &#39;Error:&#39;.$e->getMessage();
}
?>
ログイン後にコピー

出力結果は次のとおりです:

float(3) 
Error:Argument 2 passed to sum() must be of the type integer, float given, called in /home/www/learn.php on line 9
ログイン後にコピー

推奨される学習: php ビデオ チュートリアル

以上がphp7で強い型モードを有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート