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.如果类中的一个方法和类名相同,则该方法为构 ...
随机推荐
- 263. Ugly Number(判断是否是丑数 剑指offer34)
Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...
- $ 一步一步学Matlab(1)——初识Matlab
本文分四步走策略:第一,Matlab是个什么玩意:第二,为什么要学Matlab:第三,怎样轻松.无痛.少走弯路地学习Matlab:第四,怎样写一个Matlab的Hello World.通过这四步走,达 ...
- Python3.x:正则 re.findall()的用法
Python3.x:正则 re.findall()的用法 概念: 语法:findall(pattern, string, flags=0) 说明:返回string中所有与pattern相匹配的全部字串 ...
- Python高阶函数(Map、Reduce、Filter)和lambda函数一起使用 ,三剑客
Map函数 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明 比如我们有一个函数f(x)=x2,要把这个函数作用 ...
- java中的垃圾回收机
任何语言在运行过程中都会创建对象,也就意味着需要在内存中为这些对象在内存中分配空间,在这些对象失去使用的意义的时候,需要释放掉这些内容,保证内存能够提供给新的对象使用.对于对象内存的释放就是垃圾回收机 ...
- 当新手使用JS库遇到问题怎么办
见标题,知其意.在做网站时候,其实我们会用很多JS库,网络上流行的和公司自己封装的,这些东西都很好用,但是或多或少的有些bug或者有一些缺陷,即使真的很完善,但也可能达不到自己特定的一些需求.所以遇到 ...
- PHP设计模式(二):工厂方法模式
- 【cs231n】神经网络笔记笔记2
) # 对数据进行零中心化(重要) cov = np.dot(X.T, X) / X.shape[0] # 得到数据的协方差矩阵 数据协方差矩阵的第(i, j)个元素是数据第i个和第j个维度的协方差. ...
- c#实现任务栏添加控制按钮
Windows7Taskbar的使用 你需要引入3个文件VistaBridgeLibrary.dll.Windows7.DesktopIntegration.dll.Windows7.DesktopI ...
- Animal_human_kp人脸与马脸迁移学习GitHub 论文实现
Interspecies Knowledge Transfer for Facial Keypoint Detection关键点检测 Github地址:Interspecies Knowledge ...