php 父类中获取子类的名称,php – 在父类中获取子类的名称(静态上下文)
我正在构建一个重用和简单的ORM库;一切都很好,除了我被一个愚蠢的继承限制。请考虑以下代码:
class BaseModel {
/*
* Return an instance of a Model from the database.
*/
static public function get (/* varargs */) {
// 1. Notice we want an instance of User
$class = get_class(parent); // value: bool(false)
$class = get_class(self); // value: bool(false)
$class = get_class(); // value: string(9) "BaseModel"
$class = __CLASS__; // value: string(9) "BaseModel"
// 2. Query the database with id
$row = get_row_from_db_as_array(func_get_args());
// 3. Return the filled instance
$obj = new $class();
$obj->data = $row;
return $obj;
}
}
class User extends BaseModel {
protected $table = 'users';
protected $fields = array('id', 'name');
protected $primary_keys = array('id');
}
class Section extends BaseModel {
// [...]
}
$my_user = User::get(3);
$my_user->name = 'Jean';
$other_user = User::get(24);
$other_user->name = 'Paul';
$my_user->save();
$other_user->save();
$my_section = Section::get('apropos');
$my_section->delete();
显然,这不是我期待的行为(虽然实际行为也有意义)..所以我的问题是,如果你们知道一个意思,在父类,孩子类的名称。
php 父类中获取子类的名称,php – 在父类中获取子类的名称(静态上下文)相关推荐
- c#获取父类_C#——父类中的this的指向,及用反射获取当前类所在的Type | 学步园...
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- java 继承 子类 实例化_关于Java继承中父类和子类构造函数的问题
Java子类在实例化时默认调用的是父类的无参构造函数,不论实例化时调用的是子类的有参还是无参构造函数, 1.当父类没有显式定义构造方法时, 编辑器会默认为此类添加一个隐式无参构造函数.此时子类可以有自 ...
- 根据父类id查询所有的父级_父类子类抽象类,super final 重写方法,搞懂继承中复杂的知识点...
继承 继承(Inheritance)可以实现类之间共享属性和方法,是面向对象编程的另一个特性 使用继承可以最大限度地实现代码复用. 定义:继承就是在已有类的基础上构建新的类,一个类继承已有类后,可以对 ...
- 父类引用指向子类对象,为什么会调用的是子类中重新的方法
老毕的"编译看左边,运行看右边"(多态执行) (对面向对象语言中理解多态.继承很有帮助~~~) 老毕在讲到多态执行问题时,结合下面的例子,给我们总结了一套口诀:"成员变量 ...
- a.创建动物类Animal,在该类中创建一个成员方法cry(), 输出“动物会发出叫声”,以及一个eat()方法,输出“动物需要食物”; b.创建一个Animal子类Dog类,在该类中重写父类的成员
创建Zoo类作为主类,在main方法中分别创建各个类对象 ,并调用各自类的cry()方法, 创建Dog类的对象赋值给Animal类的对象,然后调用cry()和eat()方法. ** a.创建动物类An ...
- java—使用反射对类进行操作(Class对象获取类名,包名,父类,接口,构造方法,普通方法,属性)
(一)Class对象获取类名,包名,父类,接口 前提条件: 有两个接口IMessage,SystemEdition 一个父类Father 一个子类Son继承父类,实现两个接口IMessage,Syst ...
- 子类能否访问或覆盖父类的private方法
http://bettereveryday.iteye.com/blog/591771 private关键字的定义是"除了包含该成员的类之外,其他任何类都无法访问这个成员.",也就 ...
- java子类创建过程_JAVA入门小小白学习中ing(匿名对象、封装性、继承性、子类对象的创建过程、spuer关键字(用法一))...
小小白慢慢学习中ing 第十二天 努力努力 本日内容(匿名对象.封装性.继承性.子类对象的创建过程.spuer关键字) 1.匿名对象 创建对象的语法:Person p1 = new Person(); ...
- c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法
c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取注入的 libbridge.so 动态库中的 load 函数地址 并 通过 远程调用 执行该函数 )
文章目录 一.dlsym 函数简介 二.获取 目标进程 linker 中的 dlsym 函数地址 三.远程调用 目标进程 linker 中的 dlsym 函数 获取 注入的 libbridge.so ...
最新文章
- 如何在“首选项”摘要中显示Android首选项的当前值?
- 计算机组成原理we指什么,计算机组成原理课后习题答案一到九章
- 情人节脱单必备,程序员如何花式表白
- Diverse Strings
- java程序连接kafka_Java的Kafka:构建安全,可扩展的消息传递应用程序
- 做折线图_python的visvis库做折线图(line.py)代码详解
- 【爱有失落时】风与渊
- 使用axios 报 name.toUpperCase is not a function
- 【POJ 2785】【折半枚举】4 Values whose Sum is 0【暑期 No.6】
- Tomcat原理系列之一:整体架构,抓住主线
- Java Timer
- 程序员一般可以从什么平台接私活?
- 解决MacBook无法读写移动硬盘的问题
- mysql 数据库健康巡检 报告
- 「算法」FWT(快速沃尔什变换)
- npm i 和 npm i -S有什么区别吗?
- 辨大势定内局,解析新时代下的企业新刚需
- 安装apache出错
- canvas简单实现纯色背景图片抠图
- 【计算机网络】计算机网络核心知识点
热门文章
- 面向对象(二)——三大特性(封装、继承、多态)
- [Letcode]第[34]题[JAVA][在排序数组中查找元素的第一个和最后一个位置][暴力][二分]
- [JAVA][算法] [字符串匹配]KMP
- [剑指offer]面试题第[37]题[Leedcode][JAVA][第297题][二叉树列的序列化与反序列化][递归][BFS]
- Java集合容器面试题
- [Leedcode][JAVA][第914题][最大公约数]
- POJ-1050 To the Max 二维最大子段和
- 光谱 波长_【第三课】红外光谱仪及其联用技术
- 甘肃政法学院计算机科学与技术试题,甘肃政法学院计算机科学与技术专业课程教学大纲.doc...
- python数据预处理_Python数据预处理——缺失值、重复值