1,胡说八道
php设计专门用于web开发的编程语言,易学易用得到广泛应用的同时也饱受诟病,简单易学使得初学者用最短的时间很容易实现自己的WEB站点,且开源项目丰富,是中小型公司热衷的选择。但是,随着站点流量的增加、更多功能需求的增加、逻辑复杂度增加,php会让你陷入麻烦之中,php开发人员需要对php语言做深入的理解、对web站点的实践做深入的理解,对设计和技巧的应用才能解决麻烦。php语言很特殊,既有设计之初的面相过程写法,也有php4之后引入类之后的面相对象的写法,语法糖,弱语言类型等一切为开发速度的提升服务。
2,获取帮助渠道
手册 、开源社区 、google
3,面向对象OOP
OOP是一种用于开发结构合理并可维护的编程方法,由于php经常看到面向过程的写法,很多phper把OOP当作神秘的艺术。OOP最重要的可能就是代码重用,相同的问题可以用同一段代码解决。面向对象的代码存储库也不断的完善PEAR和PHP Classes,可以节省重复造轮子的时间,把更多精力放在业务逻辑等其他方面。php5对对象模型的完善和性能都得到显著提高。
类的概念:事物的通用抽象,定义对象的属性方法。
封装和可见性:封装是OOP的基本概念,概念是 一个类应该具有一个公共接口(属性方法)和一个私有实现(内部实现机制),通过公共API能够输出结果,隐藏内部实现机制。通过类的属性方法的可见性来实现公共接口和私有实现,public protected private,很多人喜欢把类都定义成public,避免考虑封装带来的问题。但是对于用户必须了解如何使用这个类,用户看了public的这些公共可见性的东西使用起来都是安全的,可能重写这些公共的类,造成严重的问题!所以尽可能把属性和方法的可见性缩小到最小满足封装的目标。
__construct 初始化对象的属性, __destruct 消除对象的痕迹(关闭数据库连接和文件句柄等),__ 包含的其他魔法函数使用起来很方便
继承:面向对象基本概念,php实现对象的单继承,继承父类的所有public protected属性和方法,子类能够覆盖继承的属性和方法,方法覆盖时参数要一致(5.3 Strict Standards报错,E_STRICT在php手册定义为 PHP建议...,为了保证向前兼容性和操作性建议开启),即使覆盖了父类的方法任然能使用父类的方法(parent::, ::被称作范围解析云算符),__constract要注意(子类覆盖时候没有java等其他面向对象语言的级联构造函数,要手动实现父类的构造)
对象的组合聚合:对象除了继承之外的另一种交互方式。
聚合可以理解为第二个对象通过方法的参数传递给第一个对象,这样第一个对象就可以调用第二个对象的方法了,优点是 对象可以被多个对象共享使用,对象改变状态可能导致其他对象无法使用
组合可以理解成第一个对象实例化第二个对象,完全拥有第二个对象,对象不能够共享给其他对象,可读性高,封装性更好,但是两个对象的耦合性更高重用困难
多态 :多个对象共享同一个接口,可以实现互换,即“一个对外接口,多个内部实现方法”,同一个操作作用于不同的类的实例,将产生不同的执行结果。也即不同类的对象收到相同的消息时,将得到不同的结果。 php接口(提供方法名称,不提供方法体)。实际的应用开发中,采用面向对象中的多态主要在于可以将不同的子类对象都当作一个父类来处理,并且可以屏蔽不同子类对象之间所存在的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。因为PHP本身就是一种弱类型的语言,不存在父类对象转化为子类对象或者是子类对象转化为父类对象的问题,所以多态的应用并不是那么的明显
4,如何编写可移植性代码
并非所有php运行的环境都是一样的。php版本 php.ini文件配置不同,脚本可能不能在另一服务器运行,所有应当采用普遍接受的最佳实践配置,提高兼容性。
最佳实践: 保持配置集中放置、编写可重用行代码、使用完整的php标记、使用全局超级变量
5,缓存
缓存是几乎所有应用都在用的一种数据优化存储方式,但是数据的实时性带来的问题该怎么解决不使用缓存?
浏览器缓存:html的meta标签和http头可以阻止使用缓存
6,代码管理 GIT
7,代码部署 构建系统
 
 

php语言介绍分析的更多相关文章

  1. 【转】对 Rust 语言的分析

    对 Rust 语言的分析 Rust 是一门最近比较热的语言,有很多人问过我对 Rust 的看法.由于我本人是一个语言专家,实现过几乎所有的语言特性,所以我不认为任何一种语言是新的.任何“新语言”对我来 ...

  2. C语言基础 (3) C语言介绍

    01回顾 02 语言介绍 语言是人和人交流,C语言是人和机器交流. 03_为什么学C语言 04_第一个C代码编译运行 #include <stdio.h> int main() { // ...

  3. solidity语言介绍以及开发环境准备

    solidity语言介绍以及开发环境准备   Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的 ...

  4. R语言实战读书笔记1—语言介绍

    第一章 语言介绍 1.1 典型的数据分析步骤 1.2 获取帮助 help.start() help("which") help.search("which") ...

  5. R语言︱情感分析—词典型代码实践(最基础)(一)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:词典型情感分析对词典要求极高,词典中 ...

  6. Arduino语言介绍

    Arduino语言介绍 Arduino语言是建立在C/C++基础上的,其基础是C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让不了解AV ...

  7. day02编程语言,Python语言介绍,Python解释器安装,环境变量,Python代码执行,pip,应用程序使用文件的三步骤,变量,变量的三大组成,比较,pycharm

    复习 重点: 1.进制转换:二进制 与十六进制 2.内存分布:栈区 与堆区 # 二进制1111转换十六进制 => 8 4 2 1 => f 10101100111011 => 2a7 ...

  8. C语言内存分析

    C语言内存分析 一.进制 概念:进制是一种计数方式,是数值的表现形式 4种主要的进制: ①. 十进制:0~9 ②. 二进制:0和1 ③. 八进制:0~7 ④. 十六进制:0~9+a b c d e f ...

  9. (转)expect命令脚本语言介绍及生产实践

    原文:http://www.fblinux.com/?p=526 Expect介绍 expect是一个用来实现自动交互功能的软件套件,是用来实现自动和交互式任务程序进行通信,无需人的手工干预.比如SS ...

随机推荐

  1. jsp jstl标签库核心标签

    JSTL标签库介绍 JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的.使用标签的目的就是不希望在jsp页面中出现java逻辑代码 全称:JSTL标签库分类 核心标签库使用 ...

  2. operator diag-up setting

  3. SGU 124. Broken line 射线法 eps的精准运用,计算几何 难度:3

    124. Broken line time limit per test: 0.25 sec. memory limit per test: 4096 KB There is a closed bro ...

  4. Struts2的手工自定义验证--完整实例代码

    ActionSupport类实现了Validateable.ValidationAware接口, 其中Validateable接口就是验证器接口,该接口有一个validate()方法, validat ...

  5. Jena解析rdf、nt、ttl格式数据

    比如有一个ttl格式的文件名为cco.ttl package com.jena; import java.io.InputStream; import com.hp.hpl.jena.rdf.mode ...

  6. 莪的拽、像省田各号①样没尽頭队——需求改进&原型设计

    需求改进&原型设计 1. 需求&原型改进 经过老师的指导以及组内成员的讨论后,我们认为之前的需求分析已经比较准确完备. 根据电子宠物的形象结构特点,以及模拟屏幕的空间限制,我们设计出了 ...

  7. L1-015 跟奥巴马一起画方块

    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统.2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正 ...

  8. DevExpress v17.2新版亮点—WPF篇(六)

    用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WPF v17.2 新的Hamburger Menu.Sched ...

  9. 特征选择: 卡方检验、F 检验和互信息

    特征选择是特征工程中的重要一环,其主要目的是从所有特征中选出相关特征 (relevant feature),或者说在不引起重要信息丢失的前提下去除掉无关特征 (irrelevant feature) ...

  10. 为什么要使用AOP

    首先,按照软件重构思想的理念,如果多个类中出现相同的代码,应该考虑定义一个共同的抽象类,将这些相同的代码提取到抽象类当中去.比如Horse.Pig.Camel这些对象都有run().eat()方法,通 ...