回答編集履歴

3

タイプヒンティングコードミス修正

2017/09/01 18:49

投稿

Tomak
Tomak

スコア1652

test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  // 型宣言(タイプヒンティング)
38
38
 
39
- function something (Array $param = array()) {
39
+ function something (array $param = array()) {
40
40
 
41
41
  ...
42
42
 

2

タイプヒンティングコードミス修正

2017/09/01 18:49

投稿

Tomak
Tomak

スコア1652

test CHANGED
@@ -36,13 +36,17 @@
36
36
 
37
37
  // 型宣言(タイプヒンティング)
38
38
 
39
- Array $array = array();
39
+ function something (Array $param = array()) {
40
+
41
+ ...
42
+
43
+ };
40
44
 
41
45
 
42
46
 
43
- $array = array(1,2,3); // OK
47
+ something(array(1,2,3)); // OK
44
48
 
45
- $array = 1 // NG
49
+ something(1) // NG
46
50
 
47
51
  ```
48
52
 

1

タイプミス修正

2017/09/01 18:43

投稿

Tomak
Tomak

スコア1652

test CHANGED
@@ -4,27 +4,47 @@
4
4
 
5
5
 
6
6
 
7
- PHP内部の定義済みのクラスのことです。[適宜済みの例外](http://php.net/manual/ja/reserved.exceptions.php)は他にもあります。
7
+ PHP内部の定義済みのクラスのことで[定義済みの例外](http://php.net/manual/ja/reserved.exceptions.php)は他にもあります。PHP7では`Error $e`というのもあります。
8
8
 
9
9
 
10
10
 
11
+ ```
12
+
11
- もともと、PHPには`try~catch 例外処理`がありませんでした。
13
+ もともと、PHPにはtry~catch 例外処理」はありませんでした。
14
+
15
+ ```
12
16
 
13
17
 
14
18
 
15
19
  導入された際に例外の`$e`だけ特殊な扱いで`型宣言`しなくてはならない仕様で導入されました。
16
20
 
17
- これが`Exception $e`です。PHP7では`Error $e`というのもあります。
21
+ これが`Exception $e`です。
18
22
 
19
23
 
20
24
 
21
- 普通、オブジェクト指向言語では変数の`型宣言`をしなくてはなりません。ストリング(オブジェクト)型の変数$strの場合は、`String $str`という具合です。PHPは型を自動判断しましょうといういうことなので型を書ません。
25
+ 普通、オブジェクト指向言語では変数の`型宣言`をしなくてはなりません。ストリング(オブジェクト)型の変数$strの場合は、`String $str`という具合です。PHPは型を自動判断しましょうというコンセプトなので通常は型を書かず、例外の時だけ`Exception $e`と書かなければいけません。
22
26
 
23
27
 
24
28
 
25
- [PHPマニュアルの型宣言について(タイプヒンティング)](http://php.net/manual/ja/functions.arguments.php#functions.arguments.type-declaration)に宣言できる一覧が記載されてます。
29
+ [PHPマニュアルの型宣言について(タイプヒンティング)](http://php.net/manual/ja/functions.arguments.php#functions.arguments.type-declaration)に宣言できる一覧が記載されてます。
26
30
 
31
+ 例えば`Array $array`などというように型を定義して変数宣言できます。こうすることで、配列以外の型を代入することはできなくなり、より厳密にプログラムを作成することができるようになります。
32
+
33
+
34
+
35
+ ```php
36
+
37
+ // 型宣言(タイプヒンティング)
38
+
27
- 例えば`Array $array`などです。
39
+ Array $array = array();
40
+
41
+
42
+
43
+ $array = array(1,2,3); // OK
44
+
45
+ $array = 1 // NG
46
+
47
+ ```
28
48
 
29
49
 
30
50
 
@@ -35,7 +55,3 @@
35
55
  正確には`try{throw new \Exception();}catch(\Exception $e){}`ですが、感覚的にはあってます。
36
56
 
37
57
 
38
-
39
- いまいち驚きが伝わらないのですが、PHP内部のクラスなどは別に珍しくないですよ。
40
-
41
- 例えばDB接続でおなじみの`PDO`もPHPの内部クラスです。