ホームページ >バックエンド開発 >PHPチュートリアル >PHP変数関数
この記事では、主に参考価値のある PHP の変数関数を紹介します。今から皆さんに共有します。困っている友達は参考にしてください。
させてください。最初に疑似コードを書きます。
protected $model; public function __construct(Category $category) { $this->model = $category; } public function getLists($request, $isPage = 'get', $order = 'created_at', $sort = 'desc') { return $this->model->orderBy($order, $sort)->$isPage(); }
getLists
には、$isPage
というパラメータがあります。本来の目的は、get
を渡してすべてのデータを取得し、paginate
を渡してページ付けすることです。書き終えた後、何かがおかしいと感じました。通常の書き方では、すべてのデータを検索します。 $this->model->orderBy($order, $sort)->get();
これはこんな感じです、見たことありませんget()
を置き換えるために変数を使用しました。実際の動作ではプログラムは正常に実行されます。次に、フォーラムでこの書き方について質問しました。次に「変数関数」という概念を紹介します。
PHP は変数関数の概念をサポートしています。これは、変数名の後に括弧がある場合、PHP は変数の値と同じ名前の関数を探し、それを実行しようとすることを意味します。
この概念を理解すると、上記の手順が理解できるようになります。プログラムの実行中、$isPage
は get
に置き換えられ、$isPage
の後にかっこがある場合、プログラムは次のような関数を探します。同じ名前。その後、実行を続行します。
例:
<?php function foo() { echo "In foo()<br />\n"; } function bar($arg = '') { echo "In bar(); argument was '$arg'.<br />\n"; } $func = 'foo'; $func(); // 执行 foo(); 命令行中输出:In foo()<br /> $func = 'bar'; $func('test'); // 执行 bar();命令行中输出:In bar(); argument was 'test'.<br />
オブジェクトのメソッドを呼び出すための変数関数の構文。
<?php class Foo { function Variable() { $name = 'Bar'; $this->$name(); // This calls the Bar() method } function Bar() { echo "This is Bar"; } } $foo = new Foo(); $funcname = "Variable"; $foo->$funcname(); // This calls $foo->Variable() // 命令行执行输出: This is Bar
静的メソッドを呼び出す場合、関数呼び出しは静的プロパティよりも優先されます。変数メソッドと静的プロパティの例。
<?php class Foo { static $variable = 'static property'; static function Variable() { echo 'Method Variable called'; } } echo Foo::$variable; // This prints 'static property'. It does need a $variable in this scope. $variable = "Variable"; Foo::$variable(); // This calls $foo->Variable() reading $variable in this scope.
以上がこの記事の全内容です。皆様の学習に少しでもお役に立てれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
以上がPHP変数関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。