009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载
<?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重写与重载的更多相关文章
- 010-对象——构造方法__construct析构方法__destruct使用方法 PHP重写与重载
<?php /*抽象方法和抽象类 抽象类必须通过子类继承之后,才能实现实例化. 类中有抽象方法,必须声明抽象类. 如果是抽象类,可以没有抽象方法,但必须通过子类去继承之后,实现实例化 final ...
- PHP 构造方法 __construct()和PHP 析构方法 __destruct()
PHP 构造方法 __construct() 允许在实例化一个类之前先执行构造方法. 构造方法 构造方法是类中的一个特殊方法.当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须 ...
- 【PHP面向对象(OOP)编程入门教程】8.构造方法__construct()与析构方法__destruct()
大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法.构 造函数的声明与其它操作的声明一样,只是其名称必须是__ ...
- 构造方法(_ _construct) 和析构方法(__destruct)
构造方法,是一个特殊的方法: 1,名字是固定的:_ _construct: 2,该方法通常都不要我们自己调用,而是在new一个对象的时候会自动调用. 3,该方法主要的目的是为了在new一个对象的时候, ...
- php构造方法与析构方法
1. 构造方法 <?php //构造方法 __construct() 是在实例化对象时被自动调用 //用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法) //语法:[修饰符] f ...
- PHP其它常用函数;<<<面向对象(OPP)的三大特性:封装、继承、加态:>>> <----面试题 ;构造方法、析构方法,魔术方法、set、get方法;静态;抽象类;接口
PHP其它常用函数: 赋值:$r->name = "元素"; 取值: echo $r->name; count() 计算数组中的元素数目或对象中 ...
- PHP面向对象的构造方法与析构方法
构造方法与析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关.构造方法时对象创建完成后第一个被对象自动调用的方法,这是我们在对象中使用构造方法的原因.而析构方法时对象在销毁之前最后一个被对象自 ...
- 浅谈PHP面向对象编程(三、构造方法和析构方法)
3.0 构造方法和析构方法 从我之前的博客可以发现,实例化一个类的对象后,如果要为这个对象的属性赋值,需要直接访问该对象的属性.如果想要在实例化对象的同时就为这个对象的属性进行赋值,则可以通过构造方法 ...
- php课程 12-38 php的类的构造方法和析构方法怎么写
php课程 12-38 php的类的构造方法和析构方法怎么写 一.总结 一句话总结:a.__construct(参数){},__destruct(){},b.如果类中的一个方法和类名相同,则该方法为构 ...
随机推荐
- Silly Java-Final 关键字
Final 关键字 adj. 最终的:最后的:决定性的:不可改变的 1.修饰变量 final variable 意味 [最后的变量,不可改变的变量即常量] Java中该关键字即代表常量 修饰基本类型的 ...
- Kattis - virus【字符串】
Kattis - virus[字符串] 题意 有一个正常的DNA序列,然后被病毒破坏.病毒可以植入一段DNA序列,这段插入DNA序列是可以删除正常DNA序列中的一个连续片段的. 简单来说就是,给你一段 ...
- HDU - 5592 ZYB's Premutation (权值线段树)
题意:给出序列前k项中的逆序对数,构造出这个序列. 分析:使用权值线段树来确定序列元素. 逆序对的数量肯定是递增的,从最后一个元素开始逆向统计,则\(a[i] - a[i-1]\)即位置i之前比位置i ...
- eclipse 创建jsp报错
- java.lang.ClassFormatError: Trjava.lang.ClassFormatError: Truncated class fileuncated class file
周末过来加班,上传编译好的文件后,部署到服务器没事.但是服务器日志满了,把日志清除后,把服务启动,发现报这个错误,大致网上看了一下,这个错误是编译的文件损坏了.然后大致看了一下文件,还真是.由于日志满 ...
- Django学习笔记之uWSGI详解
WSGI是什么? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义 ...
- char、varchar与text
总结自:https://www.cnblogs.com/mjbrian/p/6866263.html char: 定长,长度范围是0~255. 当长度不足255时,用空格来填充剩下的字符. ...
- 解决Android Studio中Rendering Problems错误
android studio提示错误信息如下图: 解决办法: 打开styles.xml文件 在Theme.AppCompat.Light.DarkActionBar前面加上Base. 修改后解决错误:
- 2009-2010 ACM-ICPC, NEERC, Western Subregional Contest
2009-2010 ACM-ICPC, NEERC, Western Subregional Contest 排名 A B C D E F G H I J K L X 1 0 1 1 1 0 1 X ...
- node实现rar格式压缩
背景 由于公司的CMS系统里,只接受rar格式压缩的文件,所以没法直接使用nodejs里提供的zip压缩组件.只能从winRar软件入手了,但网上没有多少这方面相关的东西,所以下面也是自己尝试着在做. ...