PHP5的类型约束
PHP中函数参数有类型约束。那就是,明确要求参数的类型。比如以下代码:
?
?
<?phpclass ca{ public $name='';}class cb{ public $ca; public $color; public $array=array(); //这里我们加上了类型约束,同时也给了默认值。但我们能发现,只有对象是以引用传递的 function test($srcStr,$color,ca $ca = null,array $array=null){ $this->color=$color; $this->ca = $ca; $this->array = $array; $ca->name=$srcStr; print_r($this); }}$cat=new ca();$cbt=new cb();$cbt->test('test','red'); //这里我们可以不传对象$cbt->test('test','blue',$cat); //我们可以传对象,但数组仍不传print_r($cat); $cat1=new ca();$arr=array(1,2,3,4,5);$cbt->test('test','black',$cat1,$arr); //数组对象全部传入array_push($arr,6,7,8,9); //再改变数组print_r($cbt->array); //结果传入的数组未变。?>
?
?
?
?
?
?
1 楼 dewei 2011-01-25 php5中,对象是不需要引用(&)的,大的数组是需要引用(&)的。 2 楼 tonyseek 2011-01-26 楼主说的类型约束好像也适用于PHP中的Interface 3 楼 renzhen 2011-05-20 dewei 写道php5中,对象是不需要引用(&)的,大的数组是需要引用(&)的。