PHPで関数を上書きすることは可能ですか?
2023-08-13 19:07:15
質問
あなたは と宣言してください。 のような関数を宣言できますか?
function ihatefooexamples(){
return "boo-foo!";
};
そして を再宣言します。 とすると、なんとなくこんな感じになります。
if ($_GET['foolevel'] == 10){
function ihatefooexamples(){
return "really boo-foo";
};
};
そのように関数を上書きすることは可能でしょうか?
どんな方法ですか?
どのように解決するのですか?
編集
<ブロッククオートこの回答が元の質問に直接対処していないというコメントに対処するために 元の質問に直接触れていないというコメントに対処するためです。Google検索でここにたどり着いたのなら、ここから始めてください。
という関数が用意されています。
オーバーライド関数
と呼ばれる関数があり、実際にその条件に合っています。しかし、この関数が
高度な PHP デバッガ
拡張モジュールの一部であることを考えると、この関数が
override_function()
が実運用に使われることを意図しているとは言いがたいでしょう。したがって、私は"No"と言いたい、元の質問者が持っていた意図で関数を上書きすることは不可能であるということです。
オリジナルの回答
これは、OOP、特にポリモーフィズムを活用すべきところです。
interface Fooable
{
public function ihatefooexamples();
}
class Foo implements Fooable
{
public function ihatefooexamples()
{
return "boo-foo!";
}
}
class FooBar implements Fooable
{
public function ihatefooexamples()
{
return "really boo-foo";
}
}
$foo = new Foo();
if (10 == $_GET['foolevel']) {
$foo = new FooBar();
}
echo $foo->ihatefooexamples();
関連
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルは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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み] コマンドの同期がとれていない。
-
[解決済み】空の配列要素を削除する
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み】変な電話番号を生成するフェイカー?
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】書き込みコンテキストでメソッドの戻り値を使用することができない