博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php面向对象
阅读量:5074 次
发布时间:2019-06-12

本文共 2139 字,大约阅读时间需要 7 分钟。

一.类与对象

面向对象:

①定义类
class Dog
{

②声明成员变量

var $name;
var $age;
var $pinzhong;
③声明成员函数
function Jiao()
{
echo "{$this->name}在叫";
}
}

④实例化对象

$dog = new Dog();

⑤对象成员取值赋值

$dog ->name;

⑥调用对象的成员:

$dog->name = "旺财";
$dog->Jiao();

二:$this关键字

$this 就是对象内部代表这个对象的引用

echo "这个人叫:".$this->name;

this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量

三:构造函数:

PHP5之前与类名一样,PHP5改成了__construct( )

//定义方法

function __construct($n,$a,$p)
{
$this->name = $n;
$this->age = $a;
$this->pinzhong = $p;
}

构造方法默认是共有的public

重载: php由于是弱类型的语言,所以没有重载

 

四:析构函数:

function __destruct(){echo "拜拜";}

 

 

五:封装:

 ①访问权限修饰符:private,public,protected

②将类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。如果将变量设置为私有,如何去访问:
1.自己写函数get函数set函数,然后来对变量赋值和取值
2.用系统自带的__get()函数和__set()函数来实现类里面的变量赋值取值
function __set($name,$value)
{
$this->$name = $value;
}
function __get($name)
{
return $this->$name;
}

③只要是成员属性面前有其他的关键字就要去掉原有的关键字 var

private $name;

 

六:继承

①继承一般是单继承:一个儿子只能有一个父亲
②子类可以继承父类的所有成员
③子类可以对父类的成员方法进行重写:(函数名一样),如果要在子类方法中调用父类的方法,用parent:say()或Person::say();来实现调用父类的原方法

parent::Jiao();function Jiao(){parent::Jiao();echo "hello";}

子类中用相同的函数名即可覆盖

function Say()        {            parent::Say();            echo "子类中的方法";        }    }

 

④final关键字 可以定义该类为最终类,不可被继承

⑤静态:

关键字:static ,如果成员声明了为静态的,那么该成员是属于该类的,不是属于对象的
          如何调用静态的成员:
HaShiQi::$height = 10;
HaShiQi::Gao();
用类名加双冒号调用类的静态成员
类里面取静态变量,不能用$this,所以用self
⑥const关键字

const时一个定义常量的关键字

在PHP中定义常量使用的是“define()”这个函数,但是在类里面定义常量使用的是“const”这个关键字

赋值取值和静态一样

 

七.多态

多态的概念:父类引用指向子类的实例,由于子类的不同,所表现出的差别

1.必须发生在继承下

2.子类对父类的

 

八. __toString的方法

tostring只在类中出现,系统自带的方法 双下划线
在输出对象时,返回这个对象的信息

function __toString(){$this->name;}$ren = new Ren("aa");echo $ren;//输出此对象,否则要输出要写 var_dump($ren);

①写在类里

②要有return

③输出对象引用

 

九.克隆对象

class Ren{    public $name;    public $age = 10;}    $ren = new Ren("aa");    //克隆对象    $r1 = clone $ren;//对象的复制    var_dump ($r1);    var_dump ($ren);

 

 

十.自动加载类

将类引入页面,加载类

① include("0322class.php");
② require_once("0322class.php");
③ include "0322class.php";
④ require_once "0322class.php";
自动加载类
  function __autoload($classname)
{
require_once "class_".$classname . '.php';
}

文件名要求规范一致  eg:   class_name.php

 

转载于:https://www.cnblogs.com/sjxx/p/5302701.html

你可能感兴趣的文章
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
css3动画属性
查看>>
Mongodb 基本命令
查看>>
控制文件的备份与恢复
查看>>
软件目录结构规范
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
iOS开发——缩放图片
查看>>
HTTP之URL的快捷方式
查看>>