回答編集履歴

2

指摘事項対応その2。オブジェクトの引数のデフォルトの挙動について再修正&言い回しが誤解を招きやすくなっているところを修正(オブジェクト周りの件以外は、内容的には変更していません)。

2019/10/03 05:06

投稿

nak
nak

スコア696

test CHANGED
@@ -12,11 +12,11 @@
12
12
 
13
13
  - 頭に `array` と書かれている理由
14
14
 
15
- 引数の型宣言です。
15
+ 引数の型宣言(PHP5系だとタイプヒンディング。配列の場合はPHP5.1~)です。
16
16
 
17
17
  この$arrayという変数には、必ずarray型の値を渡してください(それ以外はエラー)となります。
18
18
 
19
- (この機能はPHP7.0からできた新しい機能です。一応、5.1以降でも似たようなことはできましたが……)
19
+ ※型宣言という機能はPHP7.0からできた新しい機能です。
20
20
 
21
21
 
22
22
 
@@ -26,7 +26,13 @@
26
26
 
27
27
  `&` が書かれていない場合は、引数は基本的に値渡しになっています(ただし、オブジェクトはデフォルトでも参照渡しですのでご注意ください)。
28
28
 
29
+ →オブジェクトの場合のデフォルトは「オブジェクトIDの値渡し」だそうです。
30
+
31
+  本回答のte2jiさんのコメントに、参考になるリンクがありますので、詳細はそちらをご覧ください。
32
+
33
+
34
+
29
- 値渡しと参照渡しの違いは、その関数内で変数の中身を変更した時に、呼出し元の変数の値が変わるかどうか、です。
35
+ オブジェクトの場合の挙動はちょっとややこしいので、それ以外について……という但し書き付きになりますが、値渡しと参照渡しの違いは、その関数内で変数の中身を変更した時に、呼出し元の変数の値が変わるかどうか、です。
30
36
 
31
37
 
32
38
 

1

指摘対応(arrayのタイプヒンディング対応バージョン修正、オブジェクトはデフォルトで参照渡しになる旨の記載追加)

2019/10/03 05:06

投稿

nak
nak

スコア696

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  この$arrayという変数には、必ずarray型の値を渡してください(それ以外はエラー)となります。
18
18
 
19
- (この機能はPHP7.0からできた新しい機能です。一応、5.4以降でも似たようなことはできましたが……)
19
+ (この機能はPHP7.0からできた新しい機能です。一応、5.1以降でも似たようなことはできましたが……)
20
20
 
21
21
 
22
22
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  引数の参照渡しです。
26
26
 
27
- `&` が書かれていない場合は、引数は値渡しになっています。
27
+ `&` が書かれていない場合は、引数は基本的に値渡しになっています(ただし、オブジェクトはデフォルトでも参照渡しですのでご注意ください)
28
28
 
29
29
  値渡しと参照渡しの違いは、その関数内で変数の中身を変更した時に、呼出し元の変数の値が変わるかどうか、です。
30
30