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. PHP:第三章——PHP中嵌套函数和条件函数

    PHP中的嵌套函数: <?php header("Content-Type:text/html;charset=utf-8"); function A(){ echo &qu ...

  2. Python & PyCharm & Django 搭建web开发环境(续)

    由于Django自带轻量级的server,因此在前篇博文中,默认使用该server,但实际生产中是不允许这么干的,生产环境中通常使用Apache Httpd Server结合mod_wsgi.so来做 ...

  3. Oracle top 查询TOP SQL

    有时Oracle数据库服务器,系统CPU爆高,通过Top命令可以查看到占用CPU最高的进程 我们需要记住前几个TOP的pid号,带入下面的SQL,到数据库中查询运行的进程.服务器.用户.SQL.等待等 ...

  4. express学习-express搭建后台

    前言:本文是纯用node express做一个后端服务的教程,并不等同于express官网的入门教程,本文也并不涉及任何高级的Node服务端性能优化等知识. 本文是在已经看过express官方入门指南 ...

  5. 基于Dlib、OpenCV开发人脸识别程序的开发建议

    前言 在去年十月的时候参加了一个小比赛,做了一个人脸识别程序并很意外地获得省里面的一等奖,视频演示链接在这里,有同学想要做这方面的毕业设计or课程设计,发一篇博客来分享一下当时的开发过程. 视频演示链 ...

  6. 关于while(cin>>c)语句的理解

    1.while(cin>>c)条件语句,其功能是检测输入流中的输入是否有效,若是文件结束标记或者非法输入,则条件判断为假,否则为真. 2.windows下的文件结束标记是Ctrl+z,Li ...

  7. 关于RM中的X3014错误,以及mul() 、天空盒

    关于  error X3014: incorrect number of arguments to numeric-type constructor 这个错误应该是某个类似float4 这样的变量初始 ...

  8. JQuery, Silverlight 公用WCF

    WCF web.config配置: <?xml version="1.0"?> <configuration> <system.web> < ...

  9. 注解配置定时任务——@Scheduled

    Java中注解@Scheduled 的注解代码如下: @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(Ret ...

  10. 接下来将介绍C#如何设置子窗体在主窗体中居中显示,本文提供详细的操作步骤,需要的朋友可以参考下

    接下来将介绍C#如何设置子窗体在主窗体中居中显示,本文提供详细的操作步骤,需要的朋友可以参考下 其实表面上看是很简单的 开始吧,现在有两个窗体Form1主窗体,Form2子窗体 而且我相信大部分人都会 ...