2
にクラス内(POSTをまたはGET)filter_input使う機能することができれば...私はPHPクラスを習得しようとしている、と私の最初のクラスでは、私は出回っ悩みを持っているPHP
コード例:
class Loader
{
public $action = filter_input(INPUT_GET, "action");
public $dir = '';
public $exceptions = '';
function __construct($exceptions, $dir)
{
if(count($exceptions) > 0){
if(isset($exceptions[$this->action])){
$this->req($exceptions[$this->action]);
}else{
$this->req($this->action);
}
}
require($args[$action].".php");
}
public function req($this->action, $dir){
require($dir.$action.".php");
}
}
そして、それは次のように使用して:
$e = array('task-list' => 'list', 'task-info' => 'info');
$loader = new Loader($e);
それは$ _REQUEST変数を持つクラス内の$アクションを定義することは可能ですか?または、次のように使用してください:
$e = array('task-list' => 'list', 'task-info' => 'info');
$loader = new Loader($e);
$loader->action = filter_input(INPUT_GET, "action");
$loader->load();
意見の問題であること。スーパーグローバルをクラスから除外することを好む人もいれば、言語の一部とみなす人もいます。私はいつもこのようにアプローチしています。このクラスのテストケースを書く場合、使用したいテストデータで簡単に初期化できますか?通常、その時点で私は超大域的な使用に問題を抱えています。 –
しかし、$ Actionが定義されている 'Parse error:syntax error、unexpected '('、 'expecting'、 ';' in $ Line)のエラーが表示されます – AlexIL
何かと不足しています。 '$ loader-> action = foo'が実行されます - >' $ loader-> load() 'が実行されます。アクション '$ this-> action'を' load() 'メソッドに入れて、コンストラクタに引数として渡してください –