如何对数组执行NULL和未定义检查

I want to implement following logic - if there is an array, lets say "portfolioHistoryResults" in session, then loop it and display else do nothing.

This is not at all a big deal, but I am new to PHP and looks like PHP doesn't work the way other scripting languages worok becayse when I use following code

if ($_SESSION["portfolioHistoryResults"] != null
    && $_SESSION["portfolioHistoryResults"] != undefined)
{

Then I end up with Notice: Undefined index: portfolioHistoryResults in /home/abc/vhosts/localhost/views/common/portfolio.php on line 14.

At the time of executing that line I have my session object created but in certain cases it will not have have "portfolioHistoryResults" variable inside it. Looks like PHP is expecting to be always present or defined.

Can anybody throw light on how this works in PHP.

Use isset() function to test if your var is defined and not null :

if(isset($_SESSION["portfolioHistoryResults"])){
   // your code
}

See info here : http://php.net/manual/en/function.isset.php

You can also read this page about $_SESSION var : http://php.net/manual/en/reserved.variables.session.php

Seems in your code that you don't store anything in the portfolioHistoryResults key, like this for instance :

$_SESSION["portfolioHistoryResults"] = "test";

EDIT

To answer to your comment, you can use isset() on a var, not an expression. It means, for example, you can't use isset() like this :

if(isset($test && $otherTest)){
  //your code
}

But this code below will work because you test vars separatly and not together :

if(isset($test) && isset($otherTest)){
  //your code
}

If you are sure you expect an array, you can use:

if (is_array($_SESSION["portfolioHistoryResults"])) {
    // Do something
}

Info about is_array()

You can do this same check with isset() function:

if (isset($_SESSION["portfolioHistoryResults"]))
{