Object Constants

It is possible to define constant values on a per-class basis remaining the same and unchangeable. Constants differ from normal variables in that you don't use the $ symbol to declare or use them. Like static members, constant values can not be accessed from an instance of the object.

Example 18-13. Defining and using a constant

<?php
class MyClass {
  const
constant = 'constant value';

  function
showConstant() {
    echo  
self::constant . "\n";
  }
}

echo
MyClass::constant . "\n";

$class = new MyClass();
$class->showConstant();
/* echo $class::constant;  is not allowed */
?>
/font>->instance = ++self::$instances;
  }
}

class
MyCloneable {

  
public $object1;
  
public $object2;

  function
__clone() {
    
    
// Force a copy of this->object, otherwise
    // it will point to same object.
    
$this->object1 = clone($this->object1);
  }
}

$obj = new MyCloneable();

$obj->object1 = new SubObject();
$obj->object2 = new SubObject();

$obj2 = clone $obj;


print(
"Original Object:\n");
print_r($obj);

print(
"Cloned Object:\n");
print_r($obj2);

?>