<?php

abstract class E{
protected $name;
function __construct($name){
$this->name = $name;
}
abstract function fire();
} class M extends E{
function fire(){
print "{$this->name}:iiiii\n";
}
} class N{
private $e = array();
function adde($ename){
$this->e[] = new M($ename);
}
function p(){
if(count($this->e)>0){
$emp = array_pop($this->e);//这里要注意array_pos这个函数
$emp->fire();
}
}
} $boss = new N();
$boss->adde('harry');
var_dump($boss);
$boss->adde('bob');
var_dump($boss);
$boss->p();

<?php

abstract class E{
protected $name;
function __construct($name){
$this->name = $name;
}
abstract function fire();
} class M extends E{
function fire(){
print "{$this->name}:iiiii\n";
}
} class N{
private $e = array();
function adde(E $ename){
$this->e[] = $ename;
}
function p(){
if(count($this->e)>0){
$emp = array_pop($this->e);
//var_dump($emp);
$emp->fire();
}
}
} class C extends E{
function fire(){
print "{$this->name}:oooooo\n";
}
} $boss = new N();
$boss->adde(new M('harry'));
var_dump($boss);
$boss->adde(new C('bob'));
var_dump($boss);
$boss->adde(new M('mary'));
var_dump($boss);
$boss->p();
var_dump($boss);
$boss->p();
var_dump($boss);
$boss->p();

php生成对象的研究的更多相关文章

  1. WPF 动态生成对象属性 (dynamic)

    原文:WPF 动态生成对象属性 (dynamic) 项目中列行的数据 都需要动态生成 所以考虑到对象绑定  可需要一个动态生成属性的意思 缺点 加载速度会慢 很明显的慢 解决办法 尽量减轻动态属性的量 ...

  2. javascript生成对象的三种方法

    /** js生成对象的三种方法*/ // 1.通过new Object,然后添加属性 示例如下: var people1 = new Object(); people1.name = 'xiaohai ...

  3. WebService如何根据对方提供的xml生成对象

    最近写接口接到一个需求,就是他们推送数据过来,我们这边来提供服务接口. 对方用的是.NET WebService,已经把所有的对象格式定义好了,可能是为了顾及各个平台的通用性,所以只在文档中提供了xm ...

  4. python-根据字符串动态生成对象eval

    # -*- coding: utf-8 -*- stock1={ 'stockName':"沈阳机床", ", 'averagePrice_yesterday':34.0 ...

  5. cglib根据数据动态生成对象

    最近有个任务:根据查询SQL直接导出报表 实现关键是,怎么根据sql查询的数据动态生成对象列表,想到Cglib动态代理实现 废话少说,上代码: 定义动态生成Java Bean类: import jav ...

  6. C++ 动态生成对象

    1.啰嗦一下 说起C++,很多人都觉着难学,其实我也是这么觉着的,在这个移动端火到爆的时代,我都想改行了,移动端做东西那都是现有的第三方库,拿来就可以用,而且稳定性好,开发速度快,而且最关键的是出东西 ...

  7. 根据xml配置使用反射动态生成对象

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...

  8. 【学习笔记】Java中生成对象的5中方法

    概述:本文介绍以下java五种创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式. 2.使用Class类的newInstance方法 3.运用反射手段,调用java.lang.re ...

  9. 空类生成对象输出的结果是什么? toString()输出 覆写Object toString()方法输出的结果是什么

    空类生成对象输出的结果是什么? 输出的是对象在内存空间地址的哈希值 com.swift.P@1db9742 空类生成对象toString()输出的结果是什么? 输出的是对象在内存空间地址的哈希值的字符 ...

随机推荐

  1. hadoop之 mr输出到hbase

    1.注意问题: 1.在开发过程中一定要导入hbase源码中的lib库否则出现如下错误 TableMapReducUtil 找不到什么-- 2.编码: import java.io.IOExceptio ...

  2. css 3d 动画 相关

    transform-style: preserve-3d; 设置3D模式 perspective:700px :属性定义 3D 元素距视图的距离,以像素计.该属性允许您改变 3D 元素查看 3D 元素 ...

  3. 下载老版本的Xcode

    1.苹果开发者中心,找到Xcode 2.点击下载 3,找到Support 4.找到所需的版本,点击"+"下载 5.安装Xcode,愉快的开发.

  4. 好无语的问题----include 后面需要空格么?

    前俩天回学校办事,在去师弟宿舍的时候,被问到了一个很 "深奥"得问题 ---------include  后面需要空格么? 在我以前的印象中不管在哪个编译器中,,都是需要有空格的, ...

  5. Python自动化之YAML解析

    准备工作 pip install PyYAML import yaml yaml语法规则 想要表示列表项,使用一个短横杠加一个空格.多个项使用同样的缩进级别作为同一列表的一部分 my_dictiona ...

  6. PHP获取IP地址

    获取客户端IP地址:: function getIp(){ if(!empty($_SERVER['HTTP_CLIENT_IP'])){ return $_SERVER['HTTP_CLIENT_I ...

  7. phpcms分页用法简介

    PHPCMS分页的用法 前面需要有引用的list,代码如下: {pc:content action="lists" catid="11" order=" ...

  8. python——批量下载图片

    前言 批量下载网页上的图片需要三个步骤: 获取网页的URL 获取网页上图片的URL 下载图片 例子 from html.parser import HTMLParser import urllib.r ...

  9. Binary Tree Upside Down

    Given a binary tree where all the right nodes are either leaf nodes with a sibling (a left node that ...

  10. Valid Number

    Validate if a given string is numeric. Some examples:"0" => true" 0.1 " => ...