これは、デザイン哲学の問題に帰着します。そのようなコードを書くとしたら、メッセージを追加するクラスとスクリプト呼び出しが必要になるでしょう。次のようになります。
class BrowserAction {
public function __construct($message, $javascript) {
$this->message = $message;
$this->javascript = $javascript;
}
protected $message;
protected $javascript;
public function setMessage($message) {
$this->message = $message;
}
public function printMessage() {
return $this->message();
}
public function setJavascript($javascript) {
$this->javascript = $javascript;
}
public function printJavascript() {
return '<script type="text/javascript">' .
$this->javascript() .
'</script>';
}
public function toString() {
return $this->printMessage() . $this->printJavascript();
}
public function echo() {
echo $this->toString();
}
}
次のように使用します。
<?php
$randNum = rand(1,10)
if ($randNum <= 5) {
$msg = new BrowserAction("Enemy got the jump on you!", "enemyTurn()");
}else {
$msg = new BrowserAction("You got the jump!", "playerTurn()");
}
$msg->echo();
?>
これにより、後でアプリケーションを追加または拡張する際の柔軟性が向上します。type="text/javascript"
を1 か所に挿入するだけで、アプリケーション内のすべてのスクリプトに簡単に追加できたことがわかりますか?
この特定の例では、許容されます。実際、望ましい効果を達成するために、そうでなければ何をしますか?