• 0
name Punditsdkoslkdosdkoskdo

How to Reference - What does this error mean in PHP?

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)
  • [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 'require_once' (T_REQUIRE_ONCE), expecting function (T_FUNCTION)
  • 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 ...
  • [::]should not be called statically

Also see

  • Reference - What does this symbol mean in PHP?

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE

This error is most often encountered when attempting to reference an array value with a quoted keyfor interpolation inside a double-quoted string, when the entire complex variable construct is not enclosed in {}.

The error case:

This will result in Unexpected T_ENCAPSED_AND_WHITESPACE:

echo "This is a double-quoted string with a quoted array key in $array['key']";

Possible fixes:

In a double-quoted string, PHP will permit array key strings to be used unquoted, and will not issue an E_NOTICE. So the above could be written as:

echo "This is a double-quoted string with an un-quoted array key in $array[key]";

The entire complex array variable and key(s) can be enclosed in {}, in which case they should be quoted to avoid an E_NOTICEThe PHP documentation recommends this syntax for complex variables.

echo "This is a double-quoted string with a quoted array key in {$array['key']}";
// Or a complex array property of an object:
echo "This is a a double-quoted string with a complex {$object->property->array['key']}";

Of course, the alternative to any of the above is to concatenate the array variable in instead of interpolate it:

echo "This is a double-quoted string with an array variable " . $array['key'] . " concatenated inside.";

For reference, see the section on Variable Parsing in the PHP Strings manual page

  • 0
Reply Report

Related Questions

Trending Tags