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

Posted 牛粪也香

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于php 的空间命名以及对对象的相关操作,扩展到对数据库的相关函数的主要内容,如果未能解决你的问题,请参考以下文章

PHP命名空间面向对象以及构造函数

php魔术变量以及命名空间

如何使用来自其他命名空间的对象以及如何在 PHP 中导入命名空间

到 PHP 命名空间或不到 PHP 命名空间 [关闭]

说说PHP中的命名空间相关概念

6月14日 空操作 命名空间 视图