PHP面向对象解析
Posted 石佳灵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP面向对象解析相关的知识,希望对你有一定的参考价值。
//面向对象
//一、什么是面向对象
//面向过程
//什么是对象
//一切皆是对象
//类
//由对象抽象画
//造类
class Ren
{
//构造方法
function __construct($n)
{
$this->name = $n;
}
//成员变量
public $name = "平阳";
private $sex = "男";
//成员方法
public function Speak(){
echo "正在说话";
echo $this->sex;
}
}
//this (这个对象)
//对象实例化
$r1 = new Ren("平阳");
//$r1->name = "张杰";
echo $r1->name;
$r2 = new Ren("张杰");
echo $r2->name;
//var_dump($py);
//var_dump($r1==$r2);
//
//访问修饰符:
//public 公共的,所有对象都可访问
//protected 受保护的,当前类和子类可以访问
//private 私有的,当前类可以访问(只有内部可以访问)
//构造方法(写不写都存在)
//类的初始化方法
//////////////////////////////////
//上午总结
class Renlei
{
// 构造函数/构造方法
function __construct($name, $sex)
{
$this->name = $name;
$this->sex = $sex;
}
// 析构函数/析构方法
function __destruct()
{
echo "这是析构方法";
}
private $name;
private $sex;
private $age;
private $mz;
// 双下划线开头的方法=>魔术方法
function __set($n, $v)
{
if ($n == "age") {
if ($v > 10 && $v < 50) {
$this->$n = $v;
}
}else{
$this->$n = $v;
}
}
function __get($n)
{
if($n == "sex"){
if($this->$n == "1"){
return "男";
}else{
return "女";
}
}
return $this->$n;
}
public function speak()
{
echo "正在说话";
}
}
$r3 = new Renlei("py", "1");
//$r3->__set("age", "9");
$r3->age="11";
echo $r3->sex;
echo "<pre>";
var_dump($r3);
echo "</pre>";
//面向对象(OOP)的三要素
//封装,继承,多态
//1.封装
//目的:让类更加安全
//步骤:1,把所有的成员变量私有化
// 2,对成员变量进行赋值
// 3,对成员变量进行限制
class Ren
{
private $name;
private $sex;
function __construct($n,$v)
{
if ($n=="name"){
$this->$n =$v;
}else{
$this->$n =$v;
}
}
function __toString()
{
// TODO: Implement __toString() method.
return"这是个方法";
}
function Speak(){
echo "正在说话";
}
}
$r1 = new Ren("name","张三");
echo $r1;
//继承
//概念:子类可以继承父类的一切
//方法:
//override 重写
//overload 重载 编译多态
class Chinese extends Ren{
function spesk(){
// parent::speak();
echo "哈哈哈哈哈";
}
}
$r2 = new Chinese("name","李四");
$r2->spesk();
//不知道传了多少把它都变成一个数组
function abc(){
$arr = func_get_args();
}
//多态(运行多态)
//概念:当父类引用指向子类实例,子类里面对父类进行重写,父类引用调用该方法的时候表现不同的方法
//普通成员
//普通成员是属于对象的
//静态成员
//静态成员属于类
class Fenbi{
public $lenght = "10cm"; //普通成员 属于类 static
public static $color; //静态成员 属于类
function hua(){
echo $this->lenght;
echo self::$color;
}
static function hua2(){
echo self::$color;
}
}
$fb = new Fenbi();
$fb->hua();
Fenbi::$color = "red";
Fenbi::hua2();
$fb2 = new Fenbi();
$fb2->hua();
//关键字
//self 在类里面代表该类
//静态方法不能调用普通成员
//普通方法可以调用静态成员
//抽象
//关键字 abstract
//特点 不能被实例化只能被继承
//目的 为了派生子类 控制子类
//用于写基类
abstract class Renlei{
public $name;
function speak(){
echo "正在说话";
}
}
//接口 (面向对象的接口)
//极度抽象的类
//接口里面不能包含成员变量,只能包含成员方法
//成员方法没有函数体
//interface 命名大写I开头 implements
//实现接口的类,必须实现接口里面的所有方法
interface Iusb{
public function read();
public function write();
}
class mouse implements Iusb{
function read()
{
// TODO: Implement read() method.
}
function write()
{
// TODO: Implement write() method.
}
}
//接口(API) 区分
以上是关于PHP面向对象解析的主要内容,如果未能解决你的问题,请参考以下文章