<?php
/**构造方法__construct析构方法__destruct使用方法 PHP重写与重载
*/
//构造方法:当实例化对象时,自动运行的方法
/*class channel{
function __construct()
{
echo 222;
}
}
$channel=new channel();//输出:222*/ /*class db{
private $host;
private $user;
private $pwd;
private $dbname;
private $mysqli;
function __construct()
{
include 'dbConfig.php';
$this->host=HOST;
$this->user=USER;
$this->pwd=PWD;
$this->dbname=DBNAME;
$this->_connect();
}
function _connect(){
$this->mysqli=new mysqli($this->host,$this->user,$this->pwd,$this->dbname);
}
}
$chanel=new db();*/ //
/*浏览器输入:
http://phpbasic.com/004object/9.php?&access=admin&a=_display
输出:显示栏目
*/
/*class channel{
function __construct()
{
$access=$_GET['access'];//保存用户权限:
if ($access=="admin"){
$method=$_GET['a'];
$this->$method();
}
}
function _edit(){
echo "编辑栏目";
}
function _del(){
echo "删除栏目";
}
function _display(){
echo "显示栏目";
}
}
$channel=new channel();*/ //通过构造函数,对对象进行整体的配置:
/*class APP{
function __construct()
{
self::_include();
self::_config();
}
static function _config(){
echo "<br/>配置环境......<br/>";
}
static function _include(){
echo "<br/>载入文件...<br/>";
}
function display($content){
echo "<h1 style='color: #333; border: 3px #F00 solid;'>$content</h1>";
}
public function dump($content){
echo "<pre>";
print_r($content);
}
} class channel extends APP{
function __construct()
{
parent::__construct();
$access=$_GET['access'];//保存用户权限:
if ($access=="admin"){
$method=$_GET['a'];
$this->$method();
}else{
$this->display("你没有权限,不能操作栏目");
}
}
function _edit(){
echo "编辑栏目";
}
function _del(){
echo "删除栏目";
}
function _display(){
echo "显示栏目";
}
}
$channel=new channel();*/ //析构方法:
/*class db{
private $host;
private $user;
private $pwd;
private $dbname;
private $mysqli;
function __construct()
{
include 'dbConfig.php';
$this->host=HOST;
$this->user=USER;
$this->pwd=PWD;
$this->dbname=DBNAME;
$this->_connect();
}
function _connect(){
$this->mysqli=new mysqli($this->host,$this->user,$this->pwd,$this->dbname);
}
function update(){
echo "更新数据";
}
function insert(){
echo "插入数据";
}
public function _close(){
echo "关闭数据库";
}
function __debugInfo()
{
//对象执行完之后执行的一些方法:
$this->_close();
}
}
$chanel=new db();*/ //类的重写:(利用重写可以实现多态的实现)
class dongwu
{
function yundong()
{
echo "动物在跑";
}
} class yu extends dongwu
{
function yundong()
{
echo "鱼在游";
}
} class niao extends dongwu
{
function yundong()
{
echo "飞。。。。";
}
}
class gou extends dongwu{ } class chongwu
{
private $congwu; function __construct($type)
{
$this->congwu = new $type();
} function yundong()
{
$this->congwu->yundong();
}
} $congwu = new chongwu('yu');
$congwu->yundong();

  

009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载的更多相关文章

  1. 010-对象——构造方法__construct析构方法__destruct使用方法 PHP重写与重载

    <?php /*抽象方法和抽象类 抽象类必须通过子类继承之后,才能实现实例化. 类中有抽象方法,必须声明抽象类. 如果是抽象类,可以没有抽象方法,但必须通过子类去继承之后,实现实例化 final ...

  2. PHP 构造方法 __construct()和PHP 析构方法 __destruct()

    PHP 构造方法 __construct() 允许在实例化一个类之前先执行构造方法. 构造方法 构造方法是类中的一个特殊方法.当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须 ...

  3. 【PHP面向对象(OOP)编程入门教程】8.构造方法__construct()与析构方法__destruct()

    大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法.构 造函数的声明与其它操作的声明一样,只是其名称必须是__ ...

  4. 构造方法(_ _construct) 和析构方法(__destruct)

    构造方法,是一个特殊的方法: 1,名字是固定的:_ _construct: 2,该方法通常都不要我们自己调用,而是在new一个对象的时候会自动调用. 3,该方法主要的目的是为了在new一个对象的时候, ...

  5. php构造方法与析构方法

    1. 构造方法 <?php //构造方法 __construct() 是在实例化对象时被自动调用 //用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法) //语法:[修饰符] f ...

  6. PHP其它常用函数;<<<面向对象(OPP)的三大特性:封装、继承、加态:>>> <----面试题 ;构造方法、析构方法,魔术方法、set、get方法;静态;抽象类;接口

    PHP其它常用函数:     赋值:$r->name = "元素";      取值: echo $r->name;  count()   计算数组中的元素数目或对象中 ...

  7. PHP面向对象的构造方法与析构方法

    构造方法与析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关.构造方法时对象创建完成后第一个被对象自动调用的方法,这是我们在对象中使用构造方法的原因.而析构方法时对象在销毁之前最后一个被对象自 ...

  8. 浅谈PHP面向对象编程(三、构造方法和析构方法)

    3.0 构造方法和析构方法 从我之前的博客可以发现,实例化一个类的对象后,如果要为这个对象的属性赋值,需要直接访问该对象的属性.如果想要在实例化对象的同时就为这个对象的属性进行赋值,则可以通过构造方法 ...

  9. php课程 12-38 php的类的构造方法和析构方法怎么写

    php课程 12-38 php的类的构造方法和析构方法怎么写 一.总结 一句话总结:a.__construct(参数){},__destruct(){},b.如果类中的一个方法和类名相同,则该方法为构 ...

随机推荐

  1. web前端基础——初识HTML

    1 HTML概念 HTML(Hypertext Markup Language)即超文本标记语言,是网页的描述语言.它其实是一种描述网页的标准,它通过给需要描述的内容加上标签,浏览器按照HTML语言的 ...

  2. 理解android分辨率限定符 layout-sw360dp

    首先,我们来看看单位dp是怎么一回事,dp是一种单位,使用它,你可以在高.低分辨率上获得一样的空间表现,也就是说,它是像素无关的. dp计算公式:160*pix/ppi(pix是你要计算的高度或者宽度 ...

  3. Pivot 和 Global 的一些总结

      相信大家一定有在 Unity 編輯器上看到這樣功能 這邊會跟大家說明這項功能有什麼用處     Pivot  意思為,輔助編輯的工具標示,會顯示在第一個選取的物件身上. Center 意思為,輔助 ...

  4. Hive的静态分区和动态分区

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6831884.html 转载请注明出处 虽然之前已经用过很多次hive的分区表,但是还是找时间快速回顾总结 ...

  5. input 虚拟键盘

    if (!Element.prototype.scrollIntoViewIfNeeded) { Element.prototype.scrollIntoViewIfNeeded = function ...

  6. 20145309《Java程序设计》第八周学习总结

    日志 •java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类 ...

  7. Docker pull网络错误

    [root@Oracle ~]# docker search centos Error response from daemon: Get https://index.docker.io/v1/sea ...

  8. Sublime使用记录之SublimeServer插件介绍

    Sublime使用记录之SublimeServer插件介绍 介绍:sublimeServer

  9. matplotlib 初步学习

    author:pprp Matplotlib数据可视化 [TOC] 安装 conda install matplotlib sudo apt-get install python-matplotlib ...

  10. Python学习札记(十七) 高级特性3 列表生成式

    参考:列表生成式 Note 1.List Comprehensions,即列表生成式,是Python中内置的非常强大的list生成式. eg.生成一个列表:[1*1, 2*2, ..., 10*10] ...