[解決済み】PHPの関数のオーバーローディング
2022-04-08 20:58:41
質問
C++のバックグラウンドから来る;)
PHP の関数をオーバーロードするにはどうしたらいいですか?
引数がある場合は1つの関数定義、引数がない場合は別の関数定義? PHPでそれは可能ですか?それとも、$_GETやPOSTから渡されたパラメータがあるかどうかをif elseでチェックして関連付けるべきですか?
どのように解決するのですか?
PHPの関数をオーバーロードすることはできません。関数のシグネチャは名前だけで、引数リストは含まれないので、同じ名前の関数を2つ持つことはできません。クラス メソッドオーバーローディング は、PHPと他の多くの言語とでは異なります。PHP は同じ単語を使いますが、異なるパターンを表します。
ただし
可変個体関数
は、可変数の引数を受け取ります。この場合
func_num_args()
と
func_get_arg()
を使えば、渡された引数を取得し、普通に使うことができます。
例えば
function myFunc() {
for ($i = 0; $i < func_num_args(); $i++) {
printf("Argument %d: %s\n", $i, func_get_arg($i));
}
}
/*
Argument 0: a
Argument 1: 2
Argument 2: 3.5
*/
myFunc('a', 2, 3.5);
関連
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] php.iniはどこにありますか?
-
[解決済み] Javascriptにおける関数のオーバーロード - ベストプラクティス [終了しました]。
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】空の配列要素を削除する
-
[解決済み】メンバ関数をnullで呼び出す?
-
[解決済み】pdo - 非オブジェクトのメンバー関数prepare()への呼び出し【重複】。
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】警告:mysql_fetch_array()はパラメータ1がリソースであることを期待、ブール値は[重複]で与えられる]
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
[解決済み】In_arrayが動作しない。
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] mysql_field_nameを新しいmysqliに変更します。
-
[解決済み] phpの関数のオーバーロードとオーバーライドとは何ですか?