人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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」を使わない方法は分かりますが、上記のような使い方が出来ない理由が知りたいです。

●質問者: router
●カテゴリ:コンピュータ
✍キーワード:echo name PHP サイト 関数
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● quintia
●70ポイント

http://php.s3.to/man/function.isset.html

isset

『「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」を使っても動作しませんでした。』

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

◎質問者からの返答

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

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

htmlspecialcharsの方は

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ