<?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. XDU 1109

    #include<stdio.h> #define N 10007 #define maxn 1000005 int dp[maxn]; int main() { dp[]=,dp[]=, ...

  2. vue我的总结+转原理

    我的总结 vue:1 mvvm模型,model,view,viewmodel,自底层向上,逐渐增加的模式2 .vue文件 包含html css js 有最近设计原则,将自己需要的放到最近,2 组件化 ...

  3. 【转载】Android中attr自定义标签详解

    原文链接:http://blog.sina.com.cn/s/blog_62ef2f14010105vi.html:仅对排版进行优化,更方便阅读 <LinearLayout xmlns:andr ...

  4. 分布式远程服务调用(RPC)框架

    分布式远程服务调用(RPC)框架 finagle:一个支持容错,协议无关的RPC系统 热门度(没变化) 10.0 活跃度(没变化) 10.0  Watchers:581 Star:6174 Fork: ...

  5. AB测试的需求

    一.背景 涉及到的项目是 SDK, 用户量 几千万级别,需要调整的是 订单购买整个逻辑,已经发现了低概率问题,影响到的订单不到 0.001% ,但是每周总有几个用户向客服反馈问题.整个逻辑问题,在我入 ...

  6. C#基础--多线程

    一.微软早期操作系统中的问题 在早期的操作系统中,应用程序都是在同一个地址空间中运行的,每个程序的数据其它程序都是可见的,并且因为早期CPU是单内核 的所以所有的执行都是线性的.这就引出两个问题: 第 ...

  7. STM32 CRC32与对应的软件CRC32(转)

    源:STM32 CRC32与对应的软件CRC32 简单实现STM32 CRC32使用 使用前记得使能STM32 CRC时钟 //STM32硬件CRC32 byte数据计算,将数据移到最高位,低位补上F ...

  8. Python3.x:报错POST data should be bytes, an iterable of bytes

    Python3.x:报错POST data should be bytes, an iterable of bytes 问题: python3.x:报错 POST data should be byt ...

  9. Nginx 日志

    原文地址:Nginx深入详解之日志 作者:scq2099yt 一.日志分类        Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(/etc/nginx/nginx ...

  10. Nginx配置X-Forwarded-Proto

    需求 最近公司在做全站https,架构上面有Nginx+tomcat Nginx+php,且nginx配置了ssl,tomcat和php项目使用https协议 但是,发送的是https url请求,p ...