http://www.stackasterisk.jp/tech/php/phpMvc01_01.jsp ここを参考にしてPHPを試しています。「Request.php」の「function get($name)」の部分ですが、他のページからこの関数をうまく利用できません。「echo $request->get(’example’)」は問題なく動作します。しかし、「isset($request->get(’example’))」といった使い方が出来ませんでした。「isset」と同じように「htmlspecialchars」を使っても動作しませんでした。当該サイトの「Request.php」を使わない方法は分かりますが、上記のような使い方が出来ない理由が知りたいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/02/17 11:44:43
  • 終了:--

回答(1件)

id:quintia No.1

quintia回答回数562ベストアンサー獲得回数712005/02/18 17:24:54

ポイント70pt

『「isset($request->get(’example’))」といった使い方が出来ませんでした。』

isset()はその変数に値がセットされているかどうか? をチェックするものです。

それに対し、Request->get()はRequestが蓄えている値を返す関数であるためうまく機能ししません。

あなたが意図する(使用したい)issetは、このホームページで説明している設計手法で言えば、むしろRequestに属する関数として実装すべきかと思います。

すなわち

<?php

class Request {

:

:

function isset($name) {

return array_key_exists($name, $this->param);

}

:

:

}

?>

として実装してやり、$request->isset(’example’) という使い方をするべきではないでしょうか?

PHPは詳しくありませんが、他の言語を扱っている身としては、上記の様に感じました。

『「isset」と同じように「htmlspecialchars」を使っても動作しませんでした。』

の部分は意図が判らなかったので、申訳ありませんが意図的に無視させていただきました。

id:router

ご回答ありがとうございます。

Request.phpの方に使うというのは思いつきませんでした。でもそうですね。まだ試してませんが、回答していただいた方法で出来そうな気がします。

htmlspecialcharsの方は

「htmlspecialchars($request->get(’example’))」という使い方がisset同様に出来なかったという意味ですが、出来ない理由はたぶん同じなんでしょうね。

2005/02/18 20:48:36

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません