PHP のクラスメソッドは基本的にキャメルケース(camelCase)で命名されることが多いのですが、プロジェクトによっては単語をアンダーバーで区切るスネークケース(snake_case)が使われることもあります。
どちらにするかは自由ですが、プロジェクト全体で統一するのが望ましいとされています。
自分で作ったクラスをほかのプロジェクトでも再利用する場合、必要に応じて命名記法を書き換える事がありますが、マジックメソッドの __call(), __callStatic() を利用すると存在しない存在しない名前のメソッドが呼び出されようとしたときの処理を定義できるため、キャメルケース、スネークケースのどちらで呼び出されても同じメソッドが実行される仕組みを作ることができます。
<?php class Example { public function __call($name, $args) { $name = str_replace('_', '', ucwords($name, '_')); $name[0] = strtolower($name[0]); return call_user_func_array([$this, $name], $args); } public static function __callStatic($name, $args) { $name = str_replace('_', '', ucwords($name, '_')); $name[0] = strtolower($name[0]); return call_user_func_array([self::class, $name], $args); } public function exampleMethod($str) { return "hello, " . $str; } static public function staticMethod($str){ return "hello, " . $str; } }
メソッドの呼び出し
$example = new Example(); echo $example->exampleMethod("World"); echo $example->example_method("World"); echo Example::staticMethod("World"); echo Example::static_method("World");
実行結果: Hello, World
Similar Posts:
- [PHP]クラスにメソッドを動的に追加する
- [PHP]htmlspecialchars()を行った上でprintf()する
- [PHP]コンフィグファイルから設定情報を読み込むためのConfigクラス
- [PHP]ひらがな・カタカナをローマ字に変換する
- [PHP]メソッドチェーン
- [PHP]PHP7.0での変更点とアップグレード時の対応
- Symfony 3 のインストールと基本構成
- [PHP]OpenSSLを使った文字列の暗号化と復号