一,接口的定义和调用 (推荐学习:PHP视频教程)
<?php interface face1 { const param = 'test'; public function show(); } class test implements face1 { public function show() { echo "interface is run<br>"; } } $face = new test(); echo $face->show(); //inerface is run echo face1::param; //test ?>
说明:上面的例子要注意一点,接口的方法名是show,继承接口的类中必须有show这个方法,要不然就会报错。也就是说接口的方法是假的,真正起作用的是在继承的类中的方法,就是因为这一点,所以我觉得,接口根php的抽象类有点像。
二,对参数约束比较严
<?php interface face1 { public function show(show $show); } // 显示正常 class test implements face1 { public function show(show $show) { echo "asdfasdf"; } } // 报fatal错误 class test2 implements face1 { public function show(aaa $aaa) { } } ?>
说明:上面的这个例子报fatal错误的,为什么会报fatal错误呢?原因就在所传参数是aaa $aaa,而不是show $show。继承接口类中,调用接口的方法时,所传参数要和接口中的参数名要一至。不然就会报错。