Related Links : Search Engine Optimization | | Search Engine Marketing | Online Marketing | Freelance Programmer| SEO Thailand | SEO Expert | SEO services | PHP Programmer Thailand | SEO Tutorial | What is SEO |

  Home Our SEO Services SEO Expert Consultant Php Programmer Scripts| Email : sachin {at} jainsachin {dot} com

PHP | Comparing objects | Manual | Tutorial | Help

SEO Services



Website Programming in PHP / MYSQL



Friends


    Comparing objects

    Comparing objects

    In PHP 5, object comparison is more complicated than in PHP 4 and more in accordance to what one will expect from an Object Oriented Language (not that PHP 5 is such a language).

    When using the comparison operator (==), object variables are compared in a simple manner, namely: Two object instances are equal if they have the same attributes and values, and are instances of the same class.

    On the other hand, when using the identity operator (===), object variables are identical if and only if they refer to the same instance of the same class.

    An example will clarify these rules.

    Example #1 Example of object comparison in PHP 5

    <?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
    {
        public 
    $flag;

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

    class 
    OtherFlag
    {
        public 
    $flag;

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

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

    echo 
    "Two instances of the same class\n";
    compareObjects($o$p);

    echo 
    "\nTwo references to the same instance\n";
    compareObjects($o$q);

    echo 
    "\nInstances of two different classes\n";
    compareObjects($o$r);
    ?>

    The above example will output:

    Two instances of the same class
    o1 == o2 : TRUE
    o1 != o2 : FALSE
    o1 === o2 : FALSE
    o1 !== o2 : TRUE
    
    Two references to the same instance
    o1 == o2 : TRUE
    o1 != o2 : FALSE
    o1 === o2 : TRUE
    o1 !== o2 : FALSE
    
    Instances of two different classes
    o1 == o2 : FALSE
    o1 != o2 : TRUE
    o1 === o2 : FALSE
    o1 !== o2 : TRUE
    

    Note: Extensions can define own rules for their objects comparison.


    SEO Tutorial / Articles





    Php / Mysql Tutorial



    Articles



      Portfolio


      SEO by Jainsachin