①.、接口的定义:
接口:一种成员属性为抽象的特殊抽象类,在程序中同为规范的作用
interface Shop
{
public function buy($gid);
public function sell($gid);
public function view($gid);
}
class BaseShop implements Shop { public function buy($gid) { echo('你购买了ID为 :'.$gid.'的商品'); } public function sell($gid) { echo('你卖了ID为 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID为 :'.$gid.'的商品'); } }
结论 : PHP接口类interface就是一个类的领导者,指明方向,子类必须完成它指定方法.这样不同的开发者就不要去了解别人怎么命名相应的方法.
我们都知道PHP中的类(class)是单继承的,那是不是就没有办法实现多重继承了呢?答案是否定的.我们可以通过其它特殊的方式实现类的多重 继承,比如使用接口(interface)实现,只要把类的特征抽象为接口,并通过实现接口的方式让对象有多重身份,通过这样就可以模拟多重继承了.
下面是一个用接口(interface)实现多重继承的例子,源代码如下:
php
interface UserInterface{ //定义User的接口
function getname();
interface TeacherInterface{ //teacher相关接口
function getLengthOfService();
class User implements UserInterface { //实现UserInterface接口
private $name = "tom";
public function getName(){
return $this-name;
class Teacher implements TeacherInterface { //实现TeacherInterface接口
public function getLengthOfService(){
return $this-lengthOfService;
// 继承自User类,同时实现了TeacherInterface接口.
class GraduateStudent extends User implements TeacherInterface {
private $teacher ;
public function __construct(){
$this-teacher = new Teacher();
return $this-teacher-getLengthOfService();
class Act{
//注意这里的类型提示改成了接口类型
public static function getUserName(UserInterface $_user){
echo "Name is " . $_user-getName() ."br";
//这里的类型提示改成了TeacherInterface类型.
public static function getLengthOfService(TeacherInterface $_teacher){
echo "Age is " .$_teacher-getLengthOfService() ."br";
$graduateStudent = new GraduateStudent();
Act::getUserName($graduateStudent);
Act::getLengthOfService($graduateStudent);
//结果正如我们所要的,实现了有多重身份的一个对象.
示例运行结果如下:
Name is tom
抽象类 :1.类中至少有一个抽象方法
接口: 1.成员属性为常量const
①本身不能被实例化,必须继承或者引用
关键字 interface.引用关键字 implements
interface面向对象编程的一个重要思想接口是一个类的抽象 在接口中只定义方法却不是先方法interface Ibook {function ready();function weite();} 累如果要实现接口就必须 写出接口中所有的方法class myBook implements Ibook{function ready(){echo "ready()";}function write(){echo "write()";}}接口在代码中起规范代码作用但是php中对接口的支持没有java C#等完全面向对象语言的强大
接口interface是一个规定,给人继承用的东西,有点像抽象类.
接口定义了实现某种服务的一般规范,声明了所需的函数和常量,但不指定如何实现.之所以不给出实现的细节,是因为不同的实体可能需要用不同的方式来实现公共的方法定义.关键是要建立必须实现的一组一般原则,只有满足了这些原则才能说实现了这个接口.
扩展资料
PHP接口(interface)的特点 :
①.、接口的方法必须是公开的.
PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法.接口是一种特殊的抽象类,抽象类又是一种特殊的类,所以接口也是一种特殊的类,为什么说接口是一种特殊的抽象类呢?如果一个抽象类里面的所有的方法都是抽象方法,那么我们就换一种声明方法使用"接口";也就是说接口里面所有的方法必须都是声明为抽象方法,另外接口里面不能声明变量(但可声明常量constant),而且接口里面所有的成员都是public权限的.所以子类在实现的时候也一定要使用public权限实限.
声明一个类的时候我们使用的关键字是"class",而接口一种特殊的类,使用的关键字是"interface";
类的定义: class 类名{ ... } ,接口的声明:interface 接口名{ ...}
代码
//定义一个接口使用interface关键字,"One"为接口名称
interface One
//定义一个常量
const constant = 'constant value';
//定义了一个抽象方法"fun1"
public function fun1();
因为接口是一种特殊的抽象类,里面所有的方法都是抽象方法,所以接口也不能产生实例对象; 它也做为一种规范,所有抽象方法需要子类去实现.
我们可以使用"extends"关键字让一个接口去继承另一个接口:
//使用"extends"继承另外一个接口
interface Two extends One
而我们定义一接口的子类去实现接口中全部抽象方法使用的关键字是"implements",而不是我们前面所说的"extends";
//使用"implements"这个关键字去实现接口中的抽象方法 接口和类之间
class Three implements One
function fun1()
...
//实现了全部方法,我们去可以使用子类去实例化对象了
$three=new Three();
我们也可以使用抽象类,去实现接口中的部分抽象方法,但要想实例化对象,这个抽象类还要有子类把它所有的抽象方法都实现才行;
在前面我们说过,PHP是单继承的,一个类只能有一父类,但是一个类可以实现多个接口,就相当于一个类要遵守多个规范,就像我们不仅要遵守国家的法律,如果是在学校的话,还要遵守学校的校规一样;
//使用implements实现多个接口
class Four implemtns 接口一, 接口二, ....
//必须把所有接口中的方法都要实现才可以实例化对象.
PHP中不仅一个类可以实现多个接口,也可以在继承一个类的同时实现多个接口, 一定要先继承类再去实现接口;
//使用extends继承一个类,使用implements实现多个接口
class Four extends 类名一 implemtns 接口一, 接口二, ....
//所有接口中的方法都要实现才可以实例化对象
.........
可以用curl获取借楼的信息.
所谓接口,就是提供一个url,只要你满足它要求的参数,就能得到你要的数据.比如你拿到一个接口,带上所需的参数,复制到地址栏同样能得到.不过最好用程序得到.file_get_contents也可以用,不过有局限性.所以我建议用curl.给你一个函数,挺好用的.
function request($url,$https=true,$method='GET',$data=null){
$ch = curl_init();//初始化,得到资源
curl_setopt($ch, CURLOPT_URL,$url); //请求数据的路径
curl_setopt($ch, CURLOPT_HEADER,false);//是否输出头
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不直接输出结果
//curl_setopt ($ch, CURLOPT_SAFE_UPLOAD, 0);//兼容php之后的版本
if($https){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //是否验证主机
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //是否进行证书验证
if($method=='POST'){
curl_setopt($ch, CURLOPT_POST, true); //POST传输
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //传输数据
$content_json = curl_exec($ch);
if ($content_json === false) {
return "网络请求出错: " . curl_error($ch);
curl_close($ch);
return $content_json;
以上就是土嘎嘎小编为大家整理的php对接口相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!