質問編集履歴

2

内容そのまま文章一部訂正

2020/06/06 04:02

投稿

antonio
antonio

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,10 @@
1
1
  ###実現したいこと
2
2
 
3
- 定数展開できる変数`$_`が以下のようにあるのですが、関数`myecho()`でこれを使いたいです。
3
+ 関数`myecho()`で定数`TEISU`を使いたいです。
4
+
5
+ 以下ではTEISUは展開できません。
4
6
 
5
7
 
6
-
7
- パターン123とありますが、みなさんはどれを使いますか?または別案ございますか?
8
8
 
9
9
  ```php
10
10
 
@@ -14,13 +14,9 @@
14
14
 
15
15
 
16
16
 
17
- $_ = function($s){return $s;};
18
-
19
-
20
-
21
17
  function myecho(){
22
18
 
23
- echo "定数を展開→{$_(TEISU)}←定数を展開";
19
+ echo "定数を展開→TEISU←定数を展開"; // TEISUは展開できない
24
20
 
25
21
  }
26
22
 
@@ -28,13 +24,15 @@
28
24
 
29
25
  ```
30
26
 
31
-
27
+ 次にパターン123とありますが、みなさんはどれを使いますか?または別案ございますか?
32
28
 
33
29
 
34
30
 
35
31
  ###パターン1
36
32
 
33
+ `$_`という変数を作ります。
34
+
37
- `myecho()`という関数内で`$_`を定義すればできますが、ほかの関数`myecho2()`では使えませんし、使うならいちいち定義しないといけません
35
+ これは`myecho()`という関数内で`$_`を定義すればできますが、ほかの関数`myecho2()`では使えませんし、使うならいちいち定義しないといけません
38
36
 
39
37
  ```php
40
38
 

1

別パターン追記

2020/06/06 04:01

投稿

antonio
antonio

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,10 @@
1
1
  ###実現したいこと
2
2
 
3
3
  定数展開できる変数`$_`が以下のようにあるのですが、関数`myecho()`でこれを使いたいです。
4
+
5
+
6
+
7
+ パターン123とありますが、みなさんはどれを使いますか?または別案ございますか?
4
8
 
5
9
  ```php
6
10
 
@@ -28,7 +32,7 @@
28
32
 
29
33
 
30
34
 
31
- ###試したこと
35
+ ###パターン1
32
36
 
33
37
  `myecho()`という関数内で`$_`を定義すればできますが、ほかの関数`myecho2()`では使えませんし、使うならいちいち定義しないといけませんし
34
38
 
@@ -63,6 +67,8 @@
63
67
  myecho2();
64
68
 
65
69
  ```
70
+
71
+ ###パターン2
66
72
 
67
73
  それとも次のように`global`宣言すればできますが、これもやはりすべての関数でいちいち`global`しないといけないのが億劫です。
68
74
 
@@ -103,3 +109,33 @@
103
109
  ```
104
110
 
105
111
  いちいち関数内で定義したりglobalを書かずに、定数をそれぞれの関数で展開する方法がございましたら知りたいのですが、可能ですか?
112
+
113
+
114
+
115
+ ###パターン3
116
+
117
+ または`$_`など作らずに以下のように代入した方がいいでしょうか?
118
+
119
+ ```php
120
+
121
+ <?php
122
+
123
+ define("TEISU","ていすう");
124
+
125
+
126
+
127
+ function myecho(){
128
+
129
+ $teisu = TEISU;
130
+
131
+ echo "定数を展開→$teisu←定数を展開";
132
+
133
+ }
134
+
135
+ myecho();
136
+
137
+
138
+
139
+
140
+
141
+ ```