4

See example on the web about the PHP Factory Pattern.

In the line $kind =& Vehicle::category($wheel);, why should I to use &?

The code:

<?php
    class Vehicle {

        function category($wheel = 0) {
            if ($wheel == 2) {
                return "Motor";
            } elseif($wheel == 4) {
                return "Car";
            }
        }
    }

    class Spec {

        var $wheel = '';

        function Spec($wheel) {
            $this->wheel = $wheel;
        }

        function name() {
            $wheel = $this->wheel;
                return Vehicle::category($wheel);
        }

        function brand() {
            $wheel = $this->wheel;
                $kind =& Vehicle::category($wheel);
            if ($kind == "Motor") {
                return array('Harley','Honda');
            } elseif($kind = "Car") {
                return array('Nisan','Opel');
            }
        }
    }

    $kind = new Spec(2);
    echo "Kind: ".$kind->name();
    echo "<br>";
    echo "Brand: " . implode(",", $kind->brand());
?>
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
israel love php
  • 457
  • 3
  • 6
  • 17

2 Answers2

5

From Stack Overflow question Reference - What does this symbol mean in PHP?:

=& References

As the (deleted) comment said, the last link should apply to your specific case.

Community
  • 1
  • 1
dukevin
  • 22,384
  • 36
  • 82
  • 111
4

It is useless here since the example is getting a reference to a constant, but references do have their uses when you want to "watch" a value that might change, and you want your variable to change with it.

Emil Vikström
  • 90,431
  • 16
  • 141
  • 175