同じ名前の関数を2回定義すると発生するエラーです。ファイルの二重includeが原因になっていることが多いのが特徴です。
<?php
function greet() {
echo "こんにちは";
}
function greet() { // 同名関数を再定義
echo "こんばんは";
}
greet();
<?php
function greet($time = "day") {
if ($time === "night") {
echo "こんばんは";
} else {
echo "こんにちは";
}
}
greet();
echo "\n";
greet("night");
▶ 修正済みコードを実行エディタで開く
関数は1つの名前につき1回しか定義できません。挙動を分けたい場合は引数で分岐させます。ファイル読み込みが原因の場合は、include/requireをrequire_onceに変えると同じファイルが二重に読み込まれなくなります。function_exists()で定義済みか確認する方法もあります。