web関連

【php】function_exists()で関数が定義されているかチェック

【php】function_exists()で関数が定義されているかチェック

phpで関数消したらエラー(Fatal error)起きちゃって、調べていたらfunction_exists()なるものを使えば関数が消えてもエラーが起きないようなので備忘録

function_exists()関数とは

指定した関数が定義されていれば関数を実行する
関数がなければ実行されない

header.phpとかpage.phpで関数を出力する際の使い方

header.phpとかに出力する際の書き方

// full_urlという関数が定義されているかどうか
if ( function_exists( 'full_url' ) ) {
	// 定義されていれば出力
	full_url();
}

関数が定義されていれば実行されるしなければエラー(Fatal error)が出ない

function_exists()関数を使っていれば間違って関数消しても大丈夫

子テーマ使用時の親テーマ内のfunctions.phpで使う場合

子テーマを作成して子テーマの方をメインで更新していく時に親テーマ内のfunctions.phpでこう書いた方がいいよってやつ

// full_urlという関数が定義されてないければ
if ( ! function_exists( 'full_url' ) ) {
	// 関数を定義する
	function full_url(){
		// 処理内容
	}
}

functions.phpの読み込み順番が「子テーマfunctions.php」→「親テーマfunctions.php」なので、こういう風に書いておくと子テーマ側で親と同じ名前の関数を定義してしまったときにエラーが起きないらしい(メモ)

▼参考
https://www.netimpact.co.jp/diary/21808/

単純にこういった関数がある事を知らなかったので備忘録