  2




__autoload()
 ,  - ,   ,     .                .

 PHP 5     .     __autoload() ,        ,     .   , Zend Engine        ,          .

<?php 
function __autoload($class_name) { 
     include_once($class_name . "php"); 
} 

$obj  = new MyClass1(); 
$obj2 = new MyClass2(); 
?>


   ()
PHP 5    ,   try/throw/catch.     ,     Exception.

<?php 
class SQLException extends Exception { 
     public $problem; 
     function __construct($problem) { 
         $this->problem = $problem; 
     } 
} 

try { 
     ... 
     throw new SQLException("Couldn't connect to database"); 
     ... 
} catch (SQLException $e) { 
     print "Caught an SQLException with problem $obj->problem"; 
} catch (Exception $e) { 
     print "Caught unrecognized exception"; 
} 
?>
            . ,       ,          .  ,     set_error_handler(),    set_exception_handler(),     ,     .





 
 PHP 5      ,   PHP 4,   ,    - .

    (==),       ,  :   ,                 .

  ,     (===),        ,              .

   .

<?php
function bool2str($bool) {
     if ($bool === false) {
             return 'FALSE';
     } else {
             return 'TRUE';
     }
}

function compareObjects(&$o1, &$o2) {
     echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
     echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
     echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
     echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class Flag {
     var $flag;

     function Flag($flag=true) {
             $this->flag = $flag;
     }
}

class OtherFlag {
     var $flag;

     function OtherFlag($flag=true) {
             $this->flag = $flag;
     }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "      \n";
compareObjects($o, $p);

echo "\n       \n";
compareObjects($o, $q);

echo "\n   \n";
compareObjects($o, $r);
?>
    :

      
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

       
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

   
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

