Алхимия или как сотворить невозможное

Требуется узнать, что выведется на экран в каждом варианте:

Проделываем одни и те же действия, но с разными передаваемыми значениями, результаты при этом тоже разные.

<?
/*******************
 * Variant: First  *
 *******************/
class A{};    // Create empty class

$obj = new A;            // Create an object of class

/**
 * foo - function for a add param in class
 * @param $obj
 **/
function foo($obj){
    
$obj->foo 2;        // Create param foo in class A
}

foo($obj);                // Call function foo
echo $obj->foo;            // Displays: 2


/*******************
 * Variant: Second *
 *******************/
$arr = array();            // Create empty array

/**
 * bar - function with local array
 * @param $arr
 **/
function bar($arr){
    
$arr['bar'] = 3;    // Create local array with key "bar" and value 3
}

bar($arr);                // Call function bar
echo $arr['bar'];        // Displays:
?>