1、自动装载实例

目录下有3个文件:index.php load.php tests文件夹
tests文件夹里有 test1.php
<?php
namespace Tests;
class Test1{
static function test(){
echo __CLASS__.'<br>';
echo __FILE__.'<br>';
}
}
index.php内容
<?php include "load.php"; Tests\Test1::test();
load.php内容
<?php
class Loader
{
static function loadClass($class)
{
$class = __DIR__.DIRECTORY_SEPARATOR.str_replace('\\','/',$class).'.php';
if (file_exists($class)) {
include $class;
return;
}
}
}
spl_autoload_register(array('Loader','loadClass'));
2、php 链式操作
namespace Baobab;
class Database{
function where($where){
return $this;
}
function order($order) {
return $this;
}
function limit($limit){
return $this;
}
}
?>
//index.php
$db = new Baobab\Database();
$db->where('id = 1')->order('order by id')->limit(1);
3、魔术方法:
__get/__set:接管对象属性。在给不可访问属性赋值时,
__set() 会被调用;读取不可访问属性的值时,__get() 会被调用。
__call/__callStatic:在对象中调用一个不可访问方法时,__call() 会被调用;用静态方式中调用一个不可访问方法时,__callStatic() 会被调用。
__toString:一个类转化成字符串
__invoke:以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。
<?php
namespace Baobab;
class Object{
protected $array = array();
function __set($key, $value){
$this->array[$key] = $value;
}
function __get($key){
//echo __METHOD__;
return $this->array[$key];
}
function __call($func, $param){
//var_dump($func,$param);
return 'magic function';
}
static function __callstatic($func, $param) {
//var_dump($func, $param);
return 'magic static function';
}
function __toString(){
return __CLASS__;
}
function __invoke($param) {
return var_dump($param);
}
}
$obj = new baobab\Object();
$obj->title = 'hello';
echo $obj->title;
echo $obj->test1('hello', 123);
echo $obj::test1('hello1', 1234);
echo $obj;
echo $obj('test1');
以上就是php中自动装载、链式操作、魔术的实现代码,需要的朋友可以参考一下。
# 自动装载
# 链式操作
# 魔术方法
# PHP 预定义变量、魔术常量和魔术方法功能与用法小结
# PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
# 基于PHP的加载类操作以及其他两种魔术方法的应用实例
# PHP魔术方法之__call与__callStatic使用方法
# PHP之十六个魔术方法详细介绍
# PHP的重载使用魔术方法代码实例详解
# 链式
# 在对
# 转化成
# 象中
# 法会
# 文件夹里
# 目录下
# echo
# function
# test
# br
# loadClass
# DIRECTORY_SEPARATOR
# Loader
# gt
# str_replace
# include
# pre
# class
# tests
相关文章:
定制建站哪家更专业可靠?推荐榜单揭晓
如何在VPS电脑上快速搭建网站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何生成腾讯云建站专用兑换码?
开源网站制作软件,开源网站什么意思?
如何快速搭建高效简练网站?
建站之星伪静态规则如何设置?
宁波自助建站系统如何快速打造专业企业网站?
广平建站公司哪家专业可靠?如何选择?
重庆市网站制作公司,重庆招聘网站哪个好?
Android自定义listview布局实现上拉加载下拉刷新功能
简历在线制作网站免费,免费下载个人简历的网站是哪些?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
家庭建站与云服务器建站,如何选择更优?
C#怎么创建控制台应用 C# Console App项目创建方法
如何用低价快速搭建高质量网站?
建站之星如何实现PC+手机+微信网站五合一建站?
建站之星安装步骤有哪些常见问题?
如何在Golang中指定模块版本_使用go.mod控制版本号
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何快速搭建高效香港服务器网站?
C++时间戳转换成日期时间的步骤和示例代码
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
如何通过建站之星自助学习解决操作问题?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
制作营销网站公司,淘特是干什么用的?
如何通过免费商城建站系统源码自定义网站主题与功能?
Python如何创建带属性的XML节点
建站之星如何开启自定义404页面避免用户流失?
香港服务器租用费用高吗?如何避免常见误区?
微课制作网站有哪些,微课网怎么进?
安云自助建站系统如何快速提升SEO排名?
建站之星与建站宝盒如何选择最佳方案?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
如何通过西部建站助手安装IIS服务器?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
建站三合一如何选?哪家性价比更高?
如何在Windows虚拟主机上快速搭建网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何快速搭建高效WAP手机网站吸引移动用户?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
小建面朝正北,A点实际方位是否存在偏差?
大型企业网站制作流程,做网站需要注册公司吗?
详解jQuery停止动画——stop()方法的使用
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何彻底卸载建站之星软件?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
模具网站制作流程,如何找模具客户?
*请认真填写需求信息,我们会在24小时内与您取得联系。