理论的认知

①静态变量Static
声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。

由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。

静态属性不可以由对象通过 -> 操作符来访问。

用静态方式调用一个非静态方法会导致一个 E_STRICT 级别的错误。

就像其它所有的 PHP 静态变量一样,静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象。

②在类中声明常量的关键字:const
在定义和使用常量的时候不需要使用 $ 符号。

常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。
自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。
class MyClass
{
const constant = ‘constant value‘;

function showConstant() {
echo self::constant . "\n";
}
}

1   final关键字

Final的意思是不可更改的,意思也就是说final定义的是不可更改的。

一般在什么情况下使用final:

一般是为了防止父类的方法被重写

①如果父类中的方法被声明为final,则子类无法覆盖该方法

②如果一个类被声明为final,则不能被继承;

③属性不能被定义为final,只有类和方法才能被定义为final。

2   类的自动加载

为什么需要类的自动加载?

在编写面向对象(OOP) 程序时,很多开发者为每个类新建一个 PHP 文件。 这会带来一个烦恼:每个脚本的开头,都需要包含(include)一个长长的列表(每个类都有个文件)。

__autoLoad()

Spl_autoload_register():函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载。通过注册自动加载器,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。

尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_register() 函数。spl_autoload_register() 提供了一种更加灵活的方式来实现类的自动加载(同一个应用中,可以支持任意数量的加载器,比如第三方库中的)。因此,不再建议使用 __autoload() 函数,在以后的版本中它可能被弃用。

自动加载不可用于 PHP 的 CLI 交互模式。

如果类名比如被用于 call_user_func(),则它可能包含一些危险的字符,比如 ../。 建议您在这样的函数中不要使用用户的输入,起码需要在__autoload() 时验证下输入。

3   命名空间

什么是命名空间?

从广义上来说,命名空间是一种封装事物的方法。

在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到/home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。

命名空间的作用是什么?

在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:

用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。

时间: 2024-08-27 05:41:58

理论的认知的相关文章

因素空间, 人工智能的新数学理论

因素空间, 人工智能的新数学理论 (2016年香山论坛报告摘要) 汪 培 庄 (辽宁工程技术大学智能工程与数学研究院) 大数据浪潮预示着人类即将经历一场历史上迄今为止最伟大的科学技术革命.它不是后信息革命而是信息革命中的一个的新阶段, 其最根本的特征是Internet 与Intelligence 的二元结合, 简记为 I & I .其中,网络是信息革命的翅膀, 智能是信息革命的灵魂.革命的核心问题仍然是智能,人工智能是这场革命的主战场! 中国学者,尤其是人工智能学者站在国际争夺的时代制高点面前,

阳宇宸:大数据分析及挖掘

大数据引领我们走向数据智能化时代 [WHAT]大数据   定义 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信息资产. 大数据时代的背景 20世纪90年代,数据仓库之父的Bill Inmon就经常提及Big Data. 2011年5月,在"云计算相遇大数据"为主题的EMC World 2011 会议中,EMC 抛出了Big Data概念. 半个世纪

大数据究竟是什么?一篇文章让你认识并读懂大数据[转]

来源:互联网分析沙龙     日期:2013-11-10 在写这篇文章之前,我发现身边很多IT人对于这些热门的新技术.新趋势往往趋之若鹜却又很难说的透彻,如果你问他大数据和你有什么关系?估计很少能说出一二三来.究其原因,一是因为大家对新技术有着相同的原始渴求,至少知其然在聊天时不会显得很“土鳖”:二是在工作和生活环境中真正能参与实践大数据的案例实在太少了,所以大家没有必要花时间去知其所以然. 我希望有些不一样,所以对该如何去认识大数据进行了一番思索,包括查阅了资料,翻阅了最新的专业书籍,但我并不

大数据结构、特点、应用与价值

结构 大数据就是互联网发展到现今阶段的一种表象或特征而已,没有必要神话它或对它保持敬畏之心,在以云计算为代表的技术创新大幕的衬托下,这些原本很难收集和使用的数据开始容易被利用起来了,通过各行各业的不断创新,大数据会逐步为人类创造更多的价值. 其次,想要系统的认知大数据,必须要全面而细致的分解它,我着手从三个层面来展开: 第一层面是理论,理论是认知的必经途径,也是被广泛认同和传播的基线.我会从大数据的特征定义理解行业对大数据的整体描绘和定性:从对大数据价值的探讨来深入解析大数据的珍贵所在:洞悉大数

读<大数据日知录:架构与算法>有感

前一段时间, 一个老师建议我可以学学 '大数据' 和 '机器学习', 他说这必然是今后的热点, 学会了, 你就是香饽饽.在此之前, 我对大数据, 机器学习并没有很深的认识, 总觉得它们是那么的缥缈, 高不可攀, 也没想着深入学习.之后, 一次偶然的机会, 在csdn官方博客上看到了这样的一个活动 [置顶] 话题讨论&征文--谈论大数据时我们在谈什么 于是, 从下载试读样章, 到正式读书, 开始了学习大数据的过程... 到今天, 差不多两周过去了, 马马虎虎过了一遍, 感触颇多. 下面简单评价下我

【bigdata学习记录1】【转】 一篇对大数据深度思考的文章,让你认识并读懂大数据

在写这篇文章之前,我发现身边很多IT人对于这些热门的新技术.新趋势往往趋之若鹜却又很难说的透彻,如果你问他大数据和你有什么关系?估计很少能说出一二三来.究其原因,一是因为大家对新技术有着相同的原始渴求,至少知其然在聊天时不会显得很"土鳖";二是在工作和生活环境中真正能参与实践大数据的案例实在太少了,所以大家没有必要花时间去知其所以然. 我希望有些不一样,所以对该如何去认识大数据进行了一番思索,包括查阅了资料,翻阅了最新的专业书籍,但我并不想把那些零散的资料碎片或不同理解论述简单规整并堆

关于大数据相关的问答汇总,持续更新中~

NO.1 想要学好大数据需掌握哪些技术? 答:1,Java编程技术 Java编程技术是大数据学习的基础,Java是一种强类型语言,拥有极高的跨平台能力,可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等,是大数据工程师最喜欢的编程工具,因此,想学好大数据,掌握Java基础是必不可少的! 2.Linux命令 对于大数据开发通常是在Linux环境下进行的,相比Linux操作系统,Windows操作系统是封闭的操作系统,开源的大数据软件很受限制,因此,想从事大数据开发相关工作,还需

(七)设定目标:原理与方法

是否有达到目标的决心 什么时候可以让自己做事更有效率而减少拖延呢?怎么样才能让自己减少焦虑而保持镇定呢?沙哈尔老师指出,设定目标能改变人们的行为,减少拖延,提高效率. 这是什么原理? 沙哈尔老师说:经常设定目标的人在控制其他事情上也会做得很成功,因为通过设定目标可以帮助人聚焦.一个人有时会觉得自己找不准方向,更别说是到达目的地了,但聚焦能帮助一个人找准方向,带来成功所必须的内部和外部资源. 一旦设定了目标,不管是私下还是公开,自身和周围的环境都会发生改变.全球公认的管理学大师德鲁克说过:“聚焦任

大数据是什么?大数据的趋势?

大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信息资产. 在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的<大数据时代> 中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理.大数据的5V特点(IBM提出):Volume(大量).Velocity(高速).Variety(多样).Value(低价值密度).Veracity(真实性). 如果你