自动加载与访问权限

当在页面中创建一个类,这个类在初始化文件中,要引入该类的文件,然后使用自动加载函数__autoload方法每个类的类名和方法名都有一定的规律,便于用自动加载函数随时加载该类,在你在控制页面中创建函数,如果这个函数没有加载,则会吧这个函数的类名当参数传入函数autoload方法中,利用程序自动加载该类

函数:

function __autoload($class){
    if(strtolower(substr($class,-5))==‘model‘){
        require(ROOT.‘Model/‘.$class.".class.php");
    }else{
        require(ROOT.‘include/‘.$class.‘.class.php‘);
    }
}

为了防止用户直接访问配置文件,初始化文件,在控制页面中定义一个常量,有了这个常量,才有了访问配置文件,初始化文件的权限,在配置文件中检测是否有这个常量,如果没有,直接结束:

在控制文件中:

define(‘ACC‘,true);
include(‘./include/init.php‘);

在配置文件和初始化文件中:

defined(‘ACC‘)||exit(‘无权访问‘);//判断访问权限

如果在控制页面没有这个常量,或直接访问配置文件和初始化文件,则会显示“无权访问”,

时间: 2024-08-26 12:05:44

自动加载与访问权限的相关文章

访问修饰限定符的简单总结、final/abstruct/interface对类的限制、自动加载机制、序列化与反序列化【数据持久化和对象的序列化问题】、对象的拷贝(按引用是因为对象标识)和克隆(__clone方法中的this指向)

1.针对访问修饰限定符的理解只需要两点:(1)针对的是类的概念和访问代码的位置来确定是否能够访问(2)对访问修饰限定符的使用时只需要对该成员的使用场景注意即可[也就是内部,继承类,外部进行访问的权限] 不需要对内部进行太多理解[需要对php底层理解时进行理解] [重点][用途]通过访问修饰限定符将内部成员的权限合理的限制,然后再使用公共接口来调用这个基本服务,保证外部不能访问其内部的构件[这样既能够通过类内的设置,将内部的功能实现更好的限制,只有最外层的接口可以正常被访问到,而不了解内部的业务]

20150112--抽象类+接口+重载+自动加载机制-02

重载 重载:overload,被重新加载.在面向对象里,重载指的当一个函数(方法),具有不同的返回值或者参数列表的时候,可以有不同的存在形式(允许同名函数存在:返回值或者参数列表不一样) class Person{ public string function eat(){//吃饭方法;return '吃饱了';} public string function eat(水果){//吃水果;return '好吃';} public string function eat(主食){//吃主食;ret

20150112--抽象类+接口+重载+自动加载机制-01

回顾 面向对象:自动加载(__autoload),类常量访问(范围解析操作符),静态(属性和方法:self) 设计模式:单例模式(三私一公),工厂模式 面向对象三大特性:封装,继承和多态(PHP不支持) PHP继承:extends(对象继承:属性和非私有方法) PHP继承 方法重写 子类拥有与父类同名的方法. 除了私有的属性和方法之外,系统一律都是去子类中查找属性和方法,但是如果对应的属性和方法是私有的,那么系统一定要去判断$this所代表的上下文(类环境),在哪个类就访问哪个类的私有属性和方法

linux开机自动加载分区/etc/fstab配置文件

解释一下/etc/fstab,开机自动挂载 [[email protected] home]# cat /etc/fstab LABEL=/                 /                       ext3    defaults        1 1 LABEL=/boot             /boot                   ext3    defaults        1 2 tmpfs                   /dev/shm  

ThinkPHP 3.2.3 自动加载公共函数文件的方法

方法一.加载默认的公共函数文件 在 ThinkPHP 3.2.3 中,默认的公共函数文件位于公共模块 ./Application/Common 下,访问所有的模块之前都会首先加载公共模块下面的配置文件(Conf/config.php)和公共函数文件(Common/function.php),即默认的公共函数文件为 ./Application/Common/Common/function.php. 例如,在 ./Application/Common/Common 下新建 function.php,

Phalcon自动加载(PHP自动加载)

自动加载(phalcon\Loader) 转载请注明来源 一.php文件引入 通过 include() 或 require() 函数,可以在PHP程序执行之前在该文件中插入一个文件的内容. 区别:处理错误的方式不同.include() 函数会生成一个警告(但是脚本会继续执行),而 require() 函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行) * 正因为在文件不存在或被重命名后脚本不会继续执行,因此我们推荐使用 require() 而不是 include().

laravel的源码解析:PHP自动加载功能原理解析

前言 这篇文章是对PHP自动加载功能的一个总结,内容涉及PHP的自动加载功能.PHP的命名空间.PHP的PSR0与PSR4标准等内容. 一.PHP自动加载功能 PHP自动加载功能的由来 在PHP开发过程中,如果希望从外部引入一个 class,通常会使用 include 和 require 方法,去把定义这个 class 的文件包含进来.这个在小规模开发的时候,没什么大问题.但在大型的开发项目中,使用这种方式会带来一些隐含的问题:如果一个 PHP 文件需要使用很多其它类,那么就需要很多的 requ

PHP命名空间和自动加载初探

参考资料: PHP手册-语言参考:http://php.net/manual/zh/language.namespaces.php 概要: 1. 声明了命名空间之后,下面的const, function, class都会划归到该命名空间. 2. 只有声明过命名空间的PHP 文件才能加载有命名空间的PHP文件. 3. PHP 5.3 及以上才能使用命名空间 名词: 关键字:namespace 用来声明 本PHP文件的命名空间 常量:__NAMESPACE__ 用来返回当前命名空间的名称 默认为空字

retrofit+rxjava+recyclerview+下拉刷新+自动加载更多

安卓开发过程中,网络请求与下拉刷新分页列表的控件几乎可以说是必不可少的,但是每次开发一款产品都要重新开发,肯定是不可取的,那么最好是可以自己整理一个开发框架,那么以后开发,直接引入项目即可 网络框架的封装,从httpclient,到xutils,再到volley,再到okhttp,每次整合都发现多多少少的不足,目前自己觉得最成熟的一个也就是retrofit+okhttp3+rxjava的组合,rxjava不懂的推荐看大神的深入浅出rxjava,retrofit的使用自己网上搜咯 下拉刷新列表的实