いわゆる型制約とは、変数を定義するときにその型を指定する必要があり、変数は今後この型のデータのみを格納できることを意味します。この記事では、PHPの型制約と使い方について紹介します。
php の型制約の概要
PHP は弱い型指定言語であり、変数の型を指定する必要がないのが特徴です。もちろん、これは PHP を使用して迅速に開発するための重要なポイントの 1 つです。しかし、PHP5 以降では、関数 (メソッド) のパラメーターに型制約を使用できるようになりました。
関数のパラメータは次の範囲で指定できます:
1. オブジェクトである必要があります (関数プロトタイプでクラスの名前を指定します);
2. インターフェイス;
3. 配列 (PHP 5.1 以降);
4. 呼び出し可能 (PHP 5.4 以降)。
5. パラメーターのデフォルト値として NULL を使用した場合でも、関数を呼び出すときに実際のパラメーターとして NULL を使用できます。
6. クラスまたはインターフェースが型制約を指定する場合、そのすべてのサブクラスまたは実装も同様に指定します。
注: PHP7 より前では、int や string などのスカラー型には型制約を使用できませんでした。特性も許可されません。
php 型制約の使用:
以下は公式の例です:
<?php //如下面的类 class MyClass { /** * 测试函数 * 第一个参数必须为 OtherClass 类的一个对象 */ public function test(OtherClass $otherclass) { echo $otherclass->var; } /** * 另一个测试函数 * 第一个参数必须为数组 */ public function test_array(array $input_array) { print_r($input_array); } } /** * 第一个参数必须为递归类型 */ public function test_interface(Traversable $iterator) { echo get_class($iterator); } /** * 第一个参数必须为回调类型 */ public function test_callable(callable $callback, $data) { call_user_func($callback, $data); } } // OtherClass 类定义 class OtherClass { public $var = 'Hello World'; } ?>
関数呼び出しのパラメーターと定義されたパラメーターの型矛盾がある場合は、捕捉可能な致命的なエラーがスローされます。
<?php // 两个类的对象 $myclass = new MyClass; $otherclass = new OtherClass; // 致命错误:第一个参数必须是 OtherClass 类的一个对象 $myclass->test('hello'); // 致命错误:第一个参数必须为 OtherClass 类的一个实例 $foo = new stdClass; $myclass->test($foo); // 致命错误:第一个参数不能为 null $myclass->test(null); // 正确:输出 Hello World $myclass->test($otherclass); // 致命错误:第一个参数必须为数组 $myclass->test_array('a string'); // 正确:输出数组 $myclass->test_array(array('a', 'b', 'c')); // 正确:输出 ArrayObject $myclass->test_interface(new ArrayObject(array())); // 正确:输出 int(1) $myclass->test_callable('var_dump', 1); ?>
型制約はクラスのメンバー関数で使用されるだけでなく、関数でも使用できます:
<?php // 如下面的类 class MyClass { public $var = 'Hello World'; } /** * 测试函数 * 第一个参数必须是 MyClass 类的一个对象 */ function MyFunction (MyClass $foo) { echo $foo->var; } // 正确 $myclass = new MyClass; MyFunction($myclass); ?>
型制約では NULL 値が許可されます:
<?php /* 接受 NULL 值 */ function test(stdClass $obj = NULL) { } test(NULL); test(new stdClass); ?>
PHP7
スカラー型宣言 (PHP 7)
スカラー型宣言には、必須 (デフォルト) モードと厳密モードの 2 つのモードがあります。
次の型パラメータが使用できるようになりました (強制モードまたは厳密モードに関係なく):
1、string (string)、
2、integer (int)、
3. 浮動小数点数 (float)、
4. ブール値 (bool)。
これらは、PHP5 で導入された他の型 (クラス名、インターフェイス、配列、コールバック型) を拡張します。
<?php // 强制模式 function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));
上記の例は次のように出力します: int(9)
strict モードを使用するには、declare 宣言ディレクティブをファイルの先頭に配置する必要があります。これは、スカラーがファイル ベースで構成可能であると厳密に宣言されていることを意味します。このディレクティブはパラメータの型宣言に影響するだけでなく、関数の戻り値宣言にも影響します。
おすすめ関連記事:
PHP の型制約のコード アイデアの共有以上がPHPの型制約とは何ですか? PHPの型制約の概要と使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック



