2016-03-03

What is this?

This is a number of answers about warnings, errors and notices you might encounter while programming PHP and have no clue how to fix. This is also a Community Wiki, so everyone is invited to participate in adding to and maintaining this list.

Why is this?

Questions like "Headers already sent" or "Calling a member of a non-object" pop up frequently on Stack Overflow. The root cause of those questions is always the same. So the answers to those questions typically repeat them and then show the OP which line to change in his/her particular case. These answers do not add any value to the site because they only apply to the OP's particular code. Other users having the same error can not easily read the solution out of it because they are too localized. That is sad, because once you understood the root cause, fixing the error is trivial. Hence, this list tries to explain the solution in a general way to apply.

What should I do here?

If your question has been marked as a duplicate of this, please find your error message below and apply the fix to your code. The answers usually contain further links to investigate in case it shouldn't be clear from the general answer alone.

If you want to contribute, please add your "favorite" error message, warning or notice, one per answer, a short description what it means (even if it is only highlighting terms to their manual page), a possible solution or debugging approach and a listing of existing Q&A that are of value. Also, feel free to improve any existing answers.

The List

Nothing is seen. The page is empty and white. (also known as White Page/Screen Of Death)

Code doesn't run/what looks like parts of my PHP code are output

Warning: Cannot modify header information - headers already sent

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given a.k.a.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource a.k.a.
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given (or similar variations)

Warning: [function] expects parameter 1 to be resource, boolean given

Warning: [function]: failed to open stream: [reason]

Warning: open_basedir restriction in effect

Warning: Division by zero

Warning: Illegal string offset 'XXX'

Parse error: syntax error, unexpected '['

Parse error: syntax error, unexpected T_XXX

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

Parse error: syntax error, unexpected T_VARIABLE

Fatal error: Allowed memory size of XXX bytes exhausted (tried to allocate XXX bytes)

Fatal error: Call to a member function ... on a non-object

Fatal Error: Call to Undefined function XXX

Fatal Error: Cannot redeclare XXX

Fatal error: Can't use function return value in write context

Fatal error: Declaration of AAA::BBB() must be compatible with that of CCC::BBB() '

Fatal error: Using $this when not in object context

Notice: Array to string conversion

Notice: Trying to get property of non-object error

Notice: Undefined variable

Notice: Undefined Index

Notice: Undefined offset XXX [Reference]

Notice: Uninitialized string offset: XXX

Notice: Use of undefined constant XXX - assumed 'XXX'

MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ... at line ...

Strict Standards: Non-static method [<class>::<method>] should not be called statically

Also see

Reference - What does this symbol mean in PHP?

Show more