zoukankan      html  css  js  c++  java
  • php 的空间命名以及对对象的相关操作,扩展到对数据库的相关函数

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

    PhpclassGener::test();
    PhpclassGener::username()." ";

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

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

    $Object =new PhpclassObjecter();

    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
    <?PHP
    namespace Phpclass;
    class Loader
    {
    static function autoload_rege($class)
    {
    include BASDIR.'/'.str_replace("\","/",$class).".php";
    }
    }
    -------------------------------------------------------------------------Loader.php
    
    
    <?php
    namespace Phpclass;
    class Gener{

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

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

    }
    -------------------------------------------------------------------------Gener.php
    <?php
    namespace 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 ")不存在! ";

    }

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

    }

    function __toString()
    {
    return "对象不能直接输出 ";
    }
    function __invoke($argument)
    {
    return $argument."对象不能当函数用 ";
    }
    }
    -------------------------------------------------------------------------Object.php
    <?php
    namespace 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
  • 相关阅读:
    测量标准体重
    bytearray和file的后端上传方式
    jdbc in postgres
    Using dblink in Postgres
    计算文件的MD5值(Java & Rust)
    spring读写分离(配置多数据源)[marked]
    Spring Transaction + MyBatis SqlSession事务管理机制[marked]
    jetty ZipException: invalid entry size
    maven
    KAL1 LINUX 官方文档之虚拟化 --- 转换为OVA
  • 原文地址:https://www.cnblogs.com/nfyx/p/10743343.html
Copyright © 2011-2022 走看看