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 Keyword Suggestion Scripts | Email : sachin {at} jainsachin {dot} com

PHP | Comparing objects | Manual | Tutorial | Help

SEO Services



Website Programming in PHP / MYSQL



SEO Tools




    Comparing objects

    Comparing objects

    In PHP 4, objects are compared in a very simple manner, namely: Two object instances are equal if they have the same attributes and values, and are instances of the same class. Similar rules are applied when comparing two objects using the identity operator (===).

    If we were to execute the code in the example below:

    Example #1 Example of object comparison in 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 
    SwitchableFlag extends Flag {

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

        function 
    turnOff() {
            
    $this->flag false;
        }
    }

    $o = new Flag();
    $p = new Flag(false);
    $q = new Flag();

    $r = new SwitchableFlag();

    echo 
    "Compare instances created with the same parameters\n";
    compareObjects($o$q);

    echo 
    "\nCompare instances created with different parameters\n";
    compareObjects($o$p);

    echo 
    "\nCompare an instance of a parent class with one from a subclass\n";
    compareObjects($o$r);
    ?>

    The above example will output:

        
    Compare instances created with the same parameters
    o1 == o2 : TRUE
    o1 != o2 : FALSE
    o1 === o2 : TRUE
    o1 !== o2 : FALSE
    
    Compare instances created with different parameters
    o1 == o2 : FALSE
    o1 != o2 : TRUE
    o1 === o2 : FALSE
    o1 !== o2 : TRUE
    
    Compare an instance of a parent class with one from a subclass
    o1 == o2 : FALSE
    o1 != o2 : TRUE
    o1 === o2 : FALSE
    o1 !== o2 : TRUE
    
    Which is the output we will expect to obtain given the comparison rules above. Only instances with the same values for their attributes and from the same class are considered equal and identical.

    Even in the cases where we have object composition, the same comparison rules apply. In the example below we create a container class that stores an associative array of Flag objects.

    Example #2 Compound object comparisons in PHP 4

    <?php
    class FlagSet {
        var 
    $set;

        function 
    FlagSet($flagArr = array()) {
            
    $this->set $flagArr;
        }

        function 
    addFlag($name$flag) {
            
    $this->set[$name] = $flag;
        }

        function 
    removeFlag($name) {
            if (
    array_key_exists($name$this->set)) {
                unset(
    $this->set[$name]);
            }
        }
    }


    $u = new FlagSet();
    $u->addFlag('flag1'$o);
    $u->addFlag('flag2'$p);
    $v = new FlagSet(array('flag1'=>$q'flag2'=>$p));
    $w = new FlagSet(array('flag1'=>$q));

    echo 
    "\nComposite objects u(o,p) and v(q,p)\n";
    compareObjects($u$v);

    echo 
    "\nu(o,p) and w(q)\n";
    compareObjects($u$w);
    ?>

    The above example will output:

    Composite objects u(o,p) and v(q,p)
    o1 == o2 : TRUE
    o1 != o2 : FALSE
    o1 === o2 : TRUE
    o1 !== o2 : FALSE
    
    u(o,p) and w(q)
    o1 == o2 : FALSE
    o1 != o2 : TRUE
    o1 === o2 : FALSE
    o1 !== o2 : TRUE
    


    SEO Tutorial / Articles



    Php / Mysql Tutorial



    Articles



      Other Topics



      SEO by Jainsachin