Cannot redeclare PHP Origin: Application & API Last updated 12 Oct 2026

Fatal error: Cannot redeclare function foo() (previously declared in …)

The same function (or class) was defined twice — usually a file included more than once.

Exact message you may see Cannot redeclareCannot declare classpreviously declared in
Seen on: PHP

Meaning

PHP functions are global and can only be declared once per request. Using include/require instead of include_once/require_once, or two plugins defining the same helper, triggers this fatal error.

Common causes

  • File included twice with include/require
  • Two libraries/plugins define the same global function
  • Function defined inside a loop or another function that runs twice

⚡ Quick fix

  1. Use require_once
  2. Wrap helpers in if (!function_exists('foo')) { … }
  3. Move helpers into a namespace or class

Detailed fix by platform

WordPress

  1. Prefix plugin/theme functions with a unique name or wrap in function_exists checks

How to diagnose

  1. Locations — Both file paths are in the message
  2. Includes — Is the file included twice?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Application & API. Errors that are often confused with or caused by this one (click to open):

Allowed memory size exhausted — PHP Fatal error: Allowed memory size of X bytes exhausted (PHP)Allowed memory size e…ArgumentCountError — Fatal error: Uncaught ArgumentCountError: Too few arguments to function foo(), 1 passed and exactly 2 expected (PHP)ArgumentCountErrorCall to member function on null — Fatal error: Uncaught Error: Call to a member function x() on null (PHP)Call to member functi…Call to undefined function — PHP Fatal error: Uncaught Error: Call to undefined function (PHP)Call to undefined fun…Call to undefined function (WordPress) — WordPress: Fatal error: Uncaught Error: Call to undefined function wp_get_current_user() / add_action() / get_header() (WordPress)Call to undefined fun…Cannot use object as array — Fatal error: Uncaught Error: Cannot use object of type stdClass as array (PHP)Cannot use object as …Critical error — WordPress: There Has Been a Critical Error on This Website (WordPress)Critical errorDivisionByZeroError — Fatal error: Uncaught DivisionByZeroError: Division by zero (PHP)DivisionByZeroErrorCannot re…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.