Why do I need the isset() function in php?

I am trying to understand the difference between this:

if (isset($_POST['Submit'])) { 
  //do something


if ($_POST['Submit']) { 
  //do something

It seems to me that if the $_POST['Submit'] variable is true, then it is set. Why would I need the isset() function in this case?



$a = array("x" => "0");

if ($a["x"])
  echo "This branch is not executed";

if (isset($a["x"]))
  echo "But this will";

(See also http://hk.php.net/manual/en/function.isset.php and http://hk.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting)

isset will return TRUE if it exists and is not NULL otherwise it is FALSE.

You basically want to check if the $_POST[] variable has been submitted at all, regardless of value. If you do not use isset(), certain submissions like submit=0 will fail.

In your 2nd example, PHP will issue a notice (on E_NOTICE or stricter) if that key is not set for $_POST.

Also see this question on Stack Overflow.

The code

//some code

will not work in WAMP (works on xampp) on WAMP you will have to use

if (isset($_POST['Submit'])) { 
  //do something

try it. :)

if user do not enter a value so $_post[] return NULL that we say in the description of isset:"

isset will return TRUE if it exists and is not NULL otherwise it is FALSE.,but in here isset return the true "

Need Your Help

Style every third element?

html css html5 css3 css-selectors

How can I style every third element with plain CSS.

Can I safely use OpenMP with C++11?

c++ c++11 openmp

The OpenMP standard only considers C++ 98 (ISO/IEC 14882:1998). This means that there is no standard supporting usage of OpenMP under C++03 or even C++11. Thus, any program that uses C++ >98 and Op...