回答編集履歴
1
answer
CHANGED
@@ -2,27 +2,20 @@
|
|
2
2
|
そのためあなたの構文によって、プロパティにアクセスするのか、メソッドにアクセスするかが変わります。
|
3
3
|
|
4
4
|
単純に、
|
5
|
-
|
5
|
+
$myInstance->hoge;とすると、MyClass内のhogeプロパティをコールします。
|
6
6
|
|
7
|
-
|
7
|
+
$myInstance->hoge();とすると、MyClass内のhoge()メソッドをコールします。
|
8
8
|
しかし、hoge()メソッドが存在しない為、undefined method エラーが吐かれます。
|
9
9
|
|
10
|
-
|
10
|
+
質問者さんのコード(無名関数)を呼び出すには、以下のように書けば良いです。
|
11
11
|
|
12
|
-
|
12
|
+
例1(__invokeによる関数呼び出し):
|
13
|
-
```lang-<ここに言語を入力>
|
14
13
|
`$Instance = new HogeClass();
|
15
14
|
`$Instance->hoge->__invoke();
|
16
15
|
|
17
|
-
```
|
18
|
-
|
19
|
-
|
16
|
+
例2(ローカルの変数割り当て)
|
20
|
-
```lang-<ここに言語を入力>
|
21
17
|
`$hoge = $Instance->hoge;
|
22
18
|
`$hoge();
|
23
|
-
```
|
24
19
|
|
25
|
-
|
20
|
+
例3(call_user_funcによるコール)
|
26
|
-
```lang-<ここに言語を入力>
|
27
|
-
`call_user_func($Instance->hoge);
|
21
|
+
`call_user_func($Instance->hoge);
|
28
|
-
```
|