搜索热词
PHP面向对象之instanceof关键字的用法
instanceof的作用有2个:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口。
(1)判断一个对象是否是某个类的实例
下面针对第一种用法我们来看个实例:
首先创建一个父类,再创建一个子类去继承父类。实例化子类对象,然后去判断对象是不是属于子类,再判断是不是属于父类。
}class PHPbook extendsItbook{private $bookname;
}$book = newPHPbook();if($bookinstanceof PHPbook){echo '$book属于PHPbook类
';
}instanceof Itbook){echo '$book属于Itbook类';
}
(2)判断一个对象是否实现了某个接口
}class TestClass implementsinterfaceMethod(){return 'cyy is cute.';
}
}$test = TestClass();$testinstanceof TestInterface){echo '$test实现接口TestInterface';
}else{echo '$test没有实现接口TestInterface';
}
PHP面向对象之对象克隆方法
使用传址引用的方式调用对象,实质调用的是同一个对象,有时需要建设立一个对象的副本,改变原来的对象时不希望影响到副本,在PHP中可以根据现在的对象来克隆出一个完全一样的对象,克隆出来的副本和原本两个对象完全独立而互不干扰。
我们举个简单的例子来看一下克隆的用法:
<?Person {public $name;function __construct(){$this->name = ;
}me(){echo '我是:'.$this->name;
}
}$person1 = new Person('cyy');$person2 = clone $person1;$person1->me();echo '
'$person2->me();
结果如下:
我是:cyy
我是:cyy
还是上面的实例,只是稍微发生点变动。
$person2->name='cyy2'$person2->me();
上述实例的结果
我是:cyy
我是:cyy2
__clone的用法
很多时候我们不单单要去克隆一个对象,还想让对象可以拥有自己的属性和方法。那么我们就要在类中创建一个__clone方法。这个方法类似于构造函数和析构函数,因为不会直接调用它。
还是以上面的实例为例:
<?__clone (){$this->name = 'cyy01'我是:cyy
我是:cyy01
PHP面向对象之对象比较用法详解
运算符“==”和“===”
当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性个属性值都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等;
而如果使用全等运算符(===),这两个对象变量一定要指向某各类的同一个实例(即同一个对象)。
下面我们看个实例:
);$person1 === $person2){echo '$person1 === $person2
'else $person1 == echo '$person1 == $person2
'echo '$person1 != $person2
'$person3 = ;$person3echo '$person1 === $person3
'echo '$person1 == $person3
'echo '$person1 != $person3
';
}
结果如下:
$person2
$person3
实例解析:
使用全等运算符(===),这两个对象变量一定要指向某各类的同一个实例(即同一个对象)。只有当运算符“===”两边比较的值是同一个对象的时候,才能成立。
PHP面向对象之什么是抽象类?及抽象类的作用
什么是抽象类?
抽象类不能被实例化,同样方法也没有实现,只是提供方法声明,没有具体实现。抽象类只能作为其他类的父类使用。
抽象类和普通类也差不多,都有成员变量和成员方法。但还是有区别的。包含抽象方法的类必须本身是抽象的。抽象方法是没有方法体的,他的功能只能在子类中完成。
抽象类实例讲解:
}class Member1 ){echo 'my name is '.$name.',my level is '.;
}
}class Member2 ;
}
}$mem1 = Member1();$mem1->vipMember('cyy','1'$mem1->vipMember('cyy2','2');
PHP面向对象之final关键字用法及实例
什么是final关键字?
final中文翻译为“最终的”,“最后的”。在声明一个类之前用final关键词修饰,说明这个函数将不能在任何子类中被重载,继承,也就是说,被final修饰的类将不能再有子类。
final用法实例详解:
}
}class B $num = 50num;
}
}$num = B();$num->operation();
上述示例中禁止了在B类中重载A类中的operation()方法。这样做只会报错。
如果final写在类之前,那么讲禁止整个类被继承。
总结
以上是编程之家为你收集整理的php面向对象高级应用一全部内容,希望文章能够帮你解决php面向对象高级应用一所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。