分类:
2008-04-15 16:34:14
<?php interface Foo { function a(Foo $foo); } interface Bar { function b(Bar $bar); } class implements Foo, Bar { function a(Foo $foo) { // ... } function b(Bar $bar) { // ... } } $a = new FooBar; $b = new FooBar; $a->a($b); $a->b($b); ?> |
<?php function foo(ClassName $object) { // ... } ?> |
<?php function foo($object) { if (!($object instanceof ClassName)) { die("Argument 1 must be an of ClassName"); } } ?> |
<?php class Foo { final function bar() { // ... } } ?> Final类: <?php final class Foo { // class definition } // 下面这一行是错误的 // class Bork extends Foo {} ?> |
<?php //对象复制 class MyCloneable { static $id = 0; function MyCloneable() { $this->id = self::$id++; } /* function __clone() { $this-> = "New York"; $this->id = self::$id++; } */ } $obj = new MyCloneable(); $obj->name = ""; $obj->address = "Tel-Aviv"; print $obj->id . "\n"; $obj_cloned = clone $obj; print $obj_cloned->id . "\n"; print $obj_cloned->name . "\n"; print $obj_cloned->address . "\n"; ?> |
<?php class Foo { const constant = "constant"; } echo "Foo::constant = " . Foo::constant . "\n"; ?> |
<?php class Foo { function show() { echo __METHOD__; } } class Bar extends Foo {} Foo::show(); // outputs Foo::show Bar::show(); // outputs Foo::show either since __METHOD__ is // compile-time evaluated token function test() { echo __METHOD__; } test(); // outputs test ?> |