PHPでのパラメータヒント
3852 ワード
PHPは自分が弱いタイプの言語である呼び出し方法がパラメータタイプである可能性のある問題を解決するために,パラメータヒントを導入し,コードを見る
出力を見て
Hey JackCatchable fatal error: Argument 1 passed to callMan() must be an instance of Man, instance of Wrong given, called in D:\www\index.php on line 26 and defined in D:\www\index.php on line 18
callMan()関数の入力パラメータタイプがManではないため、catchable fatal errorを招いた.これでPHPは徐々に矛盾し、多くの自分の特性が自分に迷惑をかけ、新しい特性を出して元の問題を解決したと思う.
1 <html>
2 <body>
3 <?php
4 class Man {
5 private $name;
6
7 function getName() {
8 return $this->name;
9 }
10
11 function setName($name) {
12 $this->name = $name;
13 }
14 }
15
16 class Wrong {}
17
18 function callMan(Man $man) {
19 echo "Hey " . $man->getName();
20 }
21
22 $man = new Man();
23 $man->setName('Jack');
24
25 callMan($man);
26 callMan(new Wrong());
27 ?>
28 </body>
29 </html>
出力を見て
Hey JackCatchable fatal error: Argument 1 passed to callMan() must be an instance of Man, instance of Wrong given, called in D:\www\index.php on line 26 and defined in D:\www\index.php on line 18
callMan()関数の入力パラメータタイプがManではないため、catchable fatal errorを招いた.これでPHPは徐々に矛盾し、多くの自分の特性が自分に迷惑をかけ、新しい特性を出して元の問題を解決したと思う.