学习笔记:Creating and using a name spaced Class --FROM:Uploading Files Securely With PHP

1、name space使用方法

一般我们为每一个namespace创建一个同名的文件夹,将这个namespace之下的所有class放到这个文件夹里面;

假如我们创建一个名为:MyNamespace的namespace,和一个MyClass的类属于MyNamespace,那么首先我们要在定义MyClass的文件中写入如下代码:

namespace MyNamespace;

而且这段代码之前不要插入任何其他元素。

在要使用MyNamespace的文件中,在文档开始的地方插入如下代码:

use MyNamespace\MyClass;

同样,这段代码之前也不允许有其他的任何元素出现。(当然PHP标签除外)

2、编程规范

不管是个人,还是团队,遵循一套固定的编程规范都是非常重要的。这能让我们更好的理解我们之前写的代码,或者让别人更好的理解我们的代码;

网上已经有编写好的规范,选择一个自己喜欢的,遵循下去就可以了。

(此课程里面遵循的是www.php-fig.org里面的规范)

如果一个文件中只包含PHP代码,推荐只使用PHP开始标签,而省略结束标签。

3、魔术常量__DIR__ 和 __FILE__

我们知道PHP中提供了一个魔术常量(magic constant)__FILE__,用来指向当前执行的PHP脚本。但PHP没有直接提供该脚本所在目录的常量。也就是说如果我们要得到当前PHP脚本所在的目录,需要使用dirname()这个函数:

<?php

$dir =dirname(__FILE__);

?>

在PHP5.3中,增加了一个新的常量__DIR__,指向当前执行的PHP脚本所在的目录。

例如当前执行的PHP文件为 /www/website/index.php

则__FILE__等于‘/www/website/index.php‘

而__DIR__等于‘/www/website‘

现在我们要包含当前文件目录或子目录下的文件,可以直接使用:

<?php

require_once __DIR__ . ‘/path/to/test.inc.php‘;

?>
时间: 2024-10-04 00:04:23

学习笔记:Creating and using a name spaced Class --FROM:Uploading Files Securely With PHP的相关文章

学习笔记:Planing The Class&#39;s Features--FROM:Uploading Files Securely With PHP

1.什么是Class? Class就是一类相关的变量和函数的集合: 在Class中变量叫做属性,函数叫做方法: 属性和方法都有三个特性:public, protected, private ,对他们通俗的解释如下: public:公共的,公开的,这个属性或者方法大家都能用: protected:受保护的,这个属性或方法只有我和我的儿孙们(继承)能用: private:这是老子私有的,儿子孙子都不能用的: 如果 要使用一个class,你通常需要实例化(也有静态访问的方法),class实例化之后得到

学习笔记:Creating the class constructor -- FROM:Uploading Files Securely With PHP

1.__construct 这是class的构造函数,把它放在class里面,则会在对class创建对象的时候自动调用.这个函数可以输入参数,所以在创建类的对象的时候也是可以输入参数的. 题外话:如何编写更加健壮的应用? 怀疑所有人:应用的使用者,他可能想黑掉你的网站:甚至你自己也是或者你的同事,他们的输入也是不值得信任的: 设置错误提示信息:你的程序千万不要莫名其妙的崩溃了,而且连个提示也没有,这会让应用的维护人员(很可能就是你自己)抓狂: 良好的参考文档:这可以帮助别人了解这个应用,如果出现

AngularJs学习笔记--directive

原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directives匹配HTML并执行.这允许directive注册行为或者转换DOM结构. Angular自带一组内置的directive,对于建立Web App有很大帮助.继续扩展的话,可以在HTML定义领域特定语言(domain specific language ,DSL). 一.在HTML中引用direc

AngularJs学习笔记--Guide教程系列文章索引

在很久很久以前,一位前辈向我推荐AngularJs.但当时我没有好好学习,仅仅是讲文档浏览了一次.后来觉醒了……于是下定决心好好理解这系列的文档,并意译出来(英文水平不足……不能说是翻译,有些实在是看不懂,希望大家在参观的过程中指出其中的错误).经过1个多月断断续续的努力,终于把Guide里面的文章基本上都弄出来.Guide中的部分章节,由于重复的部分似乎有点多,而且篇幅较短,这里就没有列出来. 文章列表如下: AngularJs学习笔记--bootstrap AngularJs学习笔记--ht

C# 2012 step by step 学习笔记8 CHAPTER 9 Creating Value types with enumerations and Structures

C# 2012 step by step 学习笔记8 CHAPTER 9 Creating Value types with enumerations and Structures things about 1. Declare an enumeration type. 2. Create and use an enumeration type. 3. Declare a structure type. 4. Create and use a structure type. 5. Explain

Sencha学习笔记4: Creating your First App - 官方创建您的第一个Sencha Touch应用指导

英文原文地址:http://docs.sencha.com/touch/2.3.1/#!/guide/first_app (天地会珠海分舵声明:本翻译文章建议读者参照英文原文进行阅读,因为原文包含了实时代码编辑和预览的功能,这在csdn是不能做到的,所以下面只是提供了相应的截图,而非真实的演示) Required Software 软件需求 请参考<Sencha学习笔记1: Getting Started with Sencha Touch - 官方Sencha Touch入门指南> Crea

学习笔记:Caffe上LeNet模型理解

学习笔记:Caffe上LeNet模型理解 Caffe中用的模型结构是著名的手写体识别模型LeNet-5(http://yann.lecun.com/exdb/lenet/a35.html).当年美国大多数银行就是用它来识别支票上面的手写数字的.能够达到这种商用的地步,它的准确性可想而知,唯一的区别是把其中的sigmoid激活函数换成了ReLU. 为什么换成ReLU,上一篇blog中找到了一些相关讨论,可以参考. CNN的发展,关键就在于,通过卷积(convolution http://deepl

CAFFE学习笔记(四)将自己的jpg数据转成lmdb格式

1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验证识别效果又当如何呢? 观察CAFFE_ROOT/examples/mnist/下的lenet_train_test.prototxt文件,发现里面既给出了训练集的路径,又给出了测试集的路径.因此答案很显然了,我们可以把自己的测试集做成leveldb(或lmdb)格式的,然后在lenet_train

Caffe学习笔记3

Caffe学习笔记3 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing http://caffe.berkeleyvision.org/gathered/examples/feature_extraction.html 这篇博客主要是用imagenet的一个网络模型来对自己的图片进行训练和测试 图片下载网