学习笔记:Planing The Class's Features--FROM:Uploading Files Securely With PHP

1、什么是Class?

Class就是一类相关的变量和函数的集合;

在Class中变量叫做属性,函数叫做方法;

属性和方法都有三个特性:public, protected, private ,对他们通俗的解释如下:

  • public:公共的,公开的,这个属性或者方法大家都能用
  • protected:受保护的,这个属性或方法只有我和我的儿孙们(继承)能用
  • private:这是老子私有的,儿子孙子都不能用的

如果 要使用一个class,你通常需要实例化(也有静态访问的方法),class实例化之后得到的是一个object

2、设计Class的原则(只针对此课程):

  • Must be easy to resuse;
  • Must check size;(form里面有MAX_FILE_SIZE,但是那个很容易绕过,所以要在脚本里面检测size)
  • Should restrict permitted types or neutralize risky ones;
  • Clean up filenames and optionally prevent overwriting;
  • Handle multiple uploads;
  • Use a name space(见下文) to avoid conflicts with other scripts;
  • Inform the user of the outcome;
  • Helper methods;

3、命名空间

通俗讲,命名空间就好像是一个文件夹,class就相当于文件,我们可以把具有相同文件名的class放入到不同的name space中,这样就不用写很长很长的class文件名来避免文件名的冲突了。有时间再找找更详细的资料,此处不再拓展。

学习笔记:Planing The Class's Features--FROM:Uploading Files Securely With PHP

时间: 2024-08-01 04:42:24

学习笔记:Planing The Class's Features--FROM:Uploading Files Securely With PHP的相关文章

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

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

学习笔记: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 M

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

Django 学习笔记(七)数据库基本操作(增查改删)

一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.py 5.同步数据 二.安装IPython方便debug sudo apt-get install ipython3 安装成功后用python manage.py shell 会自动进入Ipython交互解释器中,没有安装Ipython只有前两行代码,只进入到Python shell 中. Python 3.5

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

AspectJ学习笔记2-Eclipse中AspectJ插件AJDT的正确安装方法

接着之前一篇日志.这个事情也挺无语的,简单记录一下. 在这里:http://www.eclipse.org/ajdt/ 可以下载最新的Eclipse Plugin,下载解压之后,一般来说,直接把解压后文件夹下的features和plugins放到Eclipse的文件夹下就行了.不过我这样做以后,启动Eclipse,发现没什么作用.才参考网上有人介绍的第二种方法,也就是Help--Install New Software--Add--Local这种方式选择刚才的解压文件夹,但是这样操作以后会报像下

Halcon学习笔记之支持向量机(二)

例程:classify_halogen_bulbs.hdev 在Halcon中模式匹配最成熟最常用的方式该署支持向量机了,在本例程中展示了使用支持向量机对卤素灯的质量检测方法.通过这个案例,相信大家可以对支持向量机的使用有一个更加清晰的了解.在相当多的检测和识别的应用中,都可以使用相同的方法来解决分类问题. 图1. 卤素灯图像 大致原理: 一.准备阶段:描述样本 1. 准备好两组卤素灯图像样本,好坏的各若干张图像: 2. 对样本图像进行分割,获取卤素灯关键部位区域: 3. 选择合适的对图像的描述

深度学习笔记1(卷积神经网络)

深度学习笔记1(卷积神经网络) 在看完了UFLDL教程之后,决定趁热打铁,继续深度学习的学习,主要想讲点卷积神经网络,卷积神经网络是深度学习的模型之一,还有其它如AutoEncoding.Deep Belief Network.Restricted Boltzmann Machine和sparse coding等. 在UFLDL教程中提到了针对大型图像的处理,使用卷积和池化的概念.原因主要对于全连接网络,需要的参数就有很多.比如对于一副1000*1000的图像,hidden layer也为100

&lt;Debugging Techniques&gt; LDD3 学习笔记

Debugging Techniques 内核debug的挑战: Kernel programming brings its own, unique debugging challenges. Kernel code can not be easily executed under a debugger, nor can it be easily traced, because it is a set of functionalities not related to a specific pr