php 的空间命名以及对对象的相关操作,扩展到对数据库的相关函数

<?phpdefine("BASDIR",__DIR__);include  BASDIR."/Phpclass/Loader.php";spl_autoload_register("\\Phpclass\\Loader::autoload_rege");

\Phpclass\Gener::test();\Phpclass\Gener::username()."\n";

$db = new \Phpclass\Database();//若已经变成单例模式的话,就不能再用new了$res=$db->limit(11)->order("order")->where("----")->limit(100);//链式操作,函数中的return $this; 是关键点

//魔术方法,针对对象的属性和方法Objecter.php

$Object =new \Phpclass\Objecter();

echo $Object->title="hello";//这是用__set($key,$val)和__get($key)方法,给$Object 增加了一个属性;

echo $Object->test1("test1","abcd");//设置一个不存在的函数,用__call(funcion_name,$param);

echo $Object::testccc("abcd");//设置一个不存在的函数,用__call($func_name,$param);

echo $Object;//__toString 把对象转成客串;

echo $Object("invoke只能有一个参数");//__invoke 把对象转成函数;-------------------------------------------------------------------------Index.php<?PHPnamespace Phpclass;class Loader{    static  function autoload_rege($class)    {        include  BASDIR.‘/‘.str_replace("\\","/",$class).".php";    }}
-------------------------------------------------------------------------Loader.php

<?phpnamespace Phpclass;class  Gener{

    static function test()    {        echo "this is a test";    }

    static function username()    {        echo "命名空间老是找不对地方\n";    }

}
-------------------------------------------------------------------------Gener.php
<?phpnamespace Phpclass;class Objecter{    protected $array=array();    function __set($name, $value)    {            $this->array[$name]=$value;    }    function __get($name)    {            return $this->array[$name];    }

    function __call($name, $arguments)    {        echo "你所调用的函数:$name(参数:<br />";        var_dump($arguments);        echo ")不存在!\n";

    }

    static  function __callStatic($name, $arguments)    {        echo "你所调用的函数:$name(参数:<br />";        var_dump($arguments);        echo ")不存在!\n";

    }

    function __toString()    {       return "对象不能直接输出\n";    }    function __invoke($argument)    {        return $argument."对象不能当函数用\n";    }}
-------------------------------------------------------------------------Object.php
<?phpnamespace Phpclass;class Database{

    function where($where)    {        echo "--admin".$where;        return $this;//关键点,关键点,若用链条式语句    }    function update($id)    {        echo $id;        return $this;    }    function limit($count)    {        echo $count;        return $this;    }    function order($order)    {

        echo $order;        return $this;    }}
-------------------------------------------------------------------------Database.php

原文地址:https://www.cnblogs.com/nfyx/p/10743343.html

时间: 2024-07-30 23:26:00

php 的空间命名以及对对象的相关操作,扩展到对数据库的相关函数的相关文章

javascript对象的相关操作

Window对象 我们知道浏览器对象模型(BOM)是javascript的组成之一,它提供了独立于内容与浏览器窗口进行交互的对象.其分层结构如下: window对象是整个BOM的核心其有document(文档对象).location(地址对象) 和history(历史对象组成) 调用对象属性的语法: 对象.属性名="属性值"; 对象["属性名称字符串"]="属性值"; 调用对象方法的语法: 对象的方法名(); 对象["方法名称字符串&q

js 中对象--属性相关操作

查询属性: 可以用 对象.属性 来查询属性和属性方法               或者                    对象[“属性”]  来查询属性和属性方法 演示代码: 1 <script> 2 var obj ={ 3 username:"ziksang", 4 age:22, 5 addr:"北京", 6 say:function(){ 7 return "我的名字叫 "+this.username //解析this,此

JavaScript之jQuery-4 jQuery事件(页面加载后执行、事件处理、事件冒泡、事件对象、模拟操作)

一.jQuery 页面加载后执行 代码执行的时机选择 - $(document).ready()方法和 window.onload事件具有相似的功能,但是在执行时机方面是有区别的 - window.onload 事件是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行 - $(document).ready()方法注册的事件处理程序,在DOM完全加载后就可以调用 - 一般来讲, $(document).ready()的执行要优于window.onload事件 - 需要注意的是,

了解JavaScript 对象的属性操作

提起操作, 很多人都会想到我们学习过程中最经常做的操作, 就是对数据库进行增, 删, 改, 查, 既然提到这个, 那么对于对象的属性操作也不例外, 基本上可以说也是这几个操作. JS中对象的属性标签 writable(可写), enumerable(可枚举), configurable(可配置), value(值), get/set(get, set方法). 这几个标签会在后面逐渐丰富, 这里先简单介绍下. 属性的读写 属性的读写在介绍对象的时候基本已经说的差不多了, 这里补充和总结一下. 这里

[java,2017-05-15] 内存回收 (流程、时间、对象、相关算法)

内存回收的流程 java的垃圾回收分为三个区域新生代.老年代. 永久代 一个对象实例化时 先去看伊甸园有没有足够的空间:如果有 不进行垃圾回收 ,对象直接在伊甸园存储:如果伊甸园内存已满,会进行一次minor gc:然后再进行判断伊甸园中的内存是否足够:如果不足 则去看存活区的内存是否足够:如果内存足够,把伊甸园部分活跃对象保存在存活区,然后把对象保存在伊甸园:如果内存不足,向老年代发送请求,查询老年代的内存是否足够:如果老年代内存足够,将部分存活区的活跃对象存入老年代.然后把伊甸园的活跃对象放

Python - 面对对象(其他相关,异常处理,反射,单例模式,等..)

目录 Python - 面对对象(其他相关,异常处理,反射,等..) 一.isinstance(obj, cls) 二.issubclass(sub, super) 三.异常处理 1. 异常处理 2.异常种类 3.异常其他结构 4.主动触发异常 5.自定义异常 6.断言 四.反射 五. 单例模式 Python - 面对对象(其他相关,异常处理,反射,等..) 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass ob

oracle——数据表的相关操作——转移表空间

创建数据表; create table 表名 ( 列明1 数据类型1 [约束性条件], 列明1 数据类型1 [约束性条件], …… ) tablespace 表空间 create table student05 ( student_id number not null, student_name varchar2(20), student_age number, status varchar2(2), version number default 0 ) tablespace test sele

Hibernate对象的CRUD操作

1.  Hibernate对象的CRUD操作 1.1.  对象的三种状态 瞬时(Transient) - 由new操作符创建,且尚未与HibernateSession 关联的对象被认定为瞬时(Transient)的.瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier).如果瞬时(Transient)对象在程序中没有被引用,它会被垃圾回收器(garbage collector)销毁.使用Hibernate Session可以将其变为持久(Persis

关于PHP面向对象中—类的定义与对象的实例化操作以及构造、析构函数的特殊用法

类的定义与对象的实例化操作 <?php //类里面的成员是属于对象的class Hero{    public $name;//成员变量    //成员属性(存在于强类型语言中)    protected $blood;    private $attack;    //成员方法    function skill(){        echo "$this->name<br>control";            }} $s = new Hero();//造