回答編集履歴

1

evalを使った別解を追記しました

2017/09/29 12:37

投稿

ockeghem
ockeghem

スコア11701

test CHANGED
@@ -43,3 +43,41 @@
43
43
  echo $t->getText();
44
44
 
45
45
  ```
46
+
47
+ ---
48
+
49
+ asahina1979さんが既に示唆されていますが、おそらくもっとも要望にかなうのはevalでしょうね。
50
+
51
+
52
+
53
+ ```PHP
54
+
55
+ <?php
56
+
57
+ $LONG_TEXT = 'return "${company}株式会社 ${name}様\n あいうえお${x}かきくけこ${y}";';
58
+
59
+
60
+
61
+ $company = 'アップル';
62
+
63
+ $name = 'スティーブ';
64
+
65
+ $x = '◯◯◯';
66
+
67
+ $y = '×××';
68
+
69
+
70
+
71
+ echo eval($LONG_TEXT);
72
+
73
+ ```
74
+
75
+ ただ、evalは非常に危険な機能ですので、濫用は絶対に駄目です。非常手段として紹介しましたが、もっと安全な方法を使うべきかと思います。
76
+
77
+
78
+
79
+ > **警告**
80
+
81
+ > eval() は非常に危険な言語構造です。 というのも、任意の PHP コードを実行できてしまうからです。 これを使うことはおすすめしません。 いろいろ検討した結果どうしても使わざるを得なくなった場合は、細心の注意を払って使いましょう。 ユーザーから受け取ったデータをそのまま渡してはいけません。 渡す前に、適切な検証が必要です。
82
+
83
+ > [http://php.net/manual/ja/function.eval.php](http://php.net/manual/ja/function.eval.php) から引用