PHPでインスタンス化せずにクラスを使う

(1/1)
PHPでクラスを使ってテキストの読みやすさを調べる」でクラスの使い方を学んだ。そこで学んだように、インスタンス化してできたオブジェクトに含まれるプロパティが変化するときは、new キーワードを用いてインスタンス化するメリットを享受できる。
一方で、プロパティが変化しない場合は、強いてインスタンス化する必要はない。
そこで今回は、入力した英語の名前をスネークケース(単語間の区切りをスペースの代わりにアンダースコア _ を使って、全て小文字で記述すること)に変換する処理をインスタンス化せずに呼び出すクラスを作ってみることにする。

サンプル・プログラムの実行例

目次

サンプル・プログラム

圧縮ファイルの内容
toSnakeCase.phpサンプル・プログラム本体。
toSnakeCase.php 更新履歴
バージョン 更新日 内容
1.0.0 2025/10/09 初版

解説:文字ユーティリティ・クラス

toSnakeCase.php

 138: // pahooStringUtil クラス ====================================================
 139: class pahooStringUtil {
 140: /**
 141:  * キャメルケースをスネークケースに変換する
 142:  * @param   string $str 文字列
 143:  * @return  string スネーク・ケース
 144: */
 145: static function toSnakeCase($text) {
 146:     // CamelCase → snake_case に変換
 147:     $snake = strtolower(preg_replace('/([a-z])([A-Z])/', '$1_$2', $text));
 148:     return $snake;
 149: }
 150: 
 151: // End of Class ===========================================================
 152: }
 153: 
 154: // サブルーチン ==============================================================

クラスの定義は、「PHPでクラスを使ってテキストの読みやすさを調べる」で紹介したとおりだ。
このクラスに所属するメソッド toSnakeCasestaticキーワード が付いていることに留意されたい。

staticキーワードを使って定義されたメソッドは、インスタンスを生成せずにコールすることができる。
toSnakeCaseメソッドは、固有のプロパティを保持するような状態の変化がないので、インスタンス化してオブジェクトを生成する必然性はない。そこで、staticキーワードを使って定義した。

解説:インスタンス化せずにメソッドを呼ぶ

toSnakeCase.php

 212: // メイン・プログラム ========================================================
 213: 
 214: // パラメータ取得
 215: $sour   = getParam('sour', TRUE, DEF_SOUR);
 216: 
 217: // リセット
 218: if (isButton('reset')) {
 219:     $sour = $dest = '';
 220: }
 221: 
 222: // 変換実行
 223: if ($sour !== '') {
 224:     $dest = pahooStringUtil::toSnakeCase($sour);
 225: }
 226: 
 227: // 表示用HTMLを作成する.
 228: $HtmlBody = makeCommonBody($sour, $dest);
 229: 
 230: // 画面に表示する.
 231: echo $HtmlHeader;
 232: echo $HtmlBody;
 233: echo $HtmlFooter;

インスタンス化せずにメソッドを呼ぶには、クラス名::メソッド名 とする。

参考サイト

(この項おわり)
header