php的ar类采用后期延迟绑定实现小例子
来源:互联网 发布:手机号码在云端数据库 编辑:程序博客网 时间:2024/04/30 00:18
<?php
abstract class ActiveRecord{
protected static $table;
protected $fieldvalues;
public $select;
static function findById($id){
$query='select * from '.static::$table.' where id='.$id;
return self::createInstance($query);
}
function __get($name) {
return $this->fieldvalues[$name];
}
static function __callStatic($name, $arguments) {
$field= preg_replace('/^findBy(\w*)$/','{$1}', $name);//得到查询的字段条件
$query="select * from ".static::$table." where $field='$arguments[0]'";
return self::createInstance($query);
}
private static function createInstance($query){
$callclass= get_called_class();
$instance=new $callclass();
$instance->fieldvalues=array();//以下的部分可以执行查询并为其赋值
$instance->select=$query;
foreach ($callclass::$fields as $f=>$t){
$callclass->fieldvalues[$f]=$t;
}
return $callclass;
}
}
class testmodel extends ActiveRecord{
protected static $table='test';
protected static $fields = array(
//这儿的数据应该是数据库填充的
);
}
abstract class ActiveRecord{
protected static $table;
protected $fieldvalues;
public $select;
static function findById($id){
$query='select * from '.static::$table.' where id='.$id;
return self::createInstance($query);
}
function __get($name) {
return $this->fieldvalues[$name];
}
static function __callStatic($name, $arguments) {
$field= preg_replace('/^findBy(\w*)$/','{$1}', $name);//得到查询的字段条件
$query="select * from ".static::$table." where $field='$arguments[0]'";
return self::createInstance($query);
}
private static function createInstance($query){
$callclass= get_called_class();
$instance=new $callclass();
$instance->fieldvalues=array();//以下的部分可以执行查询并为其赋值
$instance->select=$query;
foreach ($callclass::$fields as $f=>$t){
$callclass->fieldvalues[$f]=$t;
}
return $callclass;
}
}
class testmodel extends ActiveRecord{
protected static $table='test';
protected static $fields = array(
//这儿的数据应该是数据库填充的
);
}
0 0
- php的ar类采用后期延迟绑定实现小例子
- php之static后期绑定/延迟绑定
- 被忽略的魔法——php引用之延迟赋值(后期数据延迟绑定)
- php后期静态绑定例子讲解
- php静态延迟绑定的实现
- PHP后期静态绑定的功能
- php 后期静态绑定的用法 static::
- php 后期静态绑定
- php后期静态绑定
- php静态后期绑定
- php 后期静态绑定
- php后期静态绑定
- PHP后期静态绑定
- php的延迟静态绑定
- php的延迟静态绑定
- php的延迟静态绑定
- 81. PHP 后期静态绑定
- PHP后期静态绑定测试
- IOS 程序员开发最常用宏定义
- PAPI问题
- UISegmentedControl的详细使用
- android示例之DatePicker和DatePickerDialog
- eclipse 经典快捷键之将某一段代码整体放入try()语句块中的快捷键
- php的ar类采用后期延迟绑定实现小例子
- mybatis一对多时报错
- asp.net(C#) 下载网页并处理编码
- 简单的语音合成与语音识别(科大讯飞)
- 有关PCA(Principal Component Analysis)主成分分析/主累積寄与率元分析
- TIA Poral v12安装成功
- 定制iOS 7中的导航栏和状态栏
- NGUI UI自适应分辨率 手游
- Orcal问题处理