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 config设置jsp页面

    jsp-config jsp-config功能:用于设定jsp页面的相关设置(web.xml 版本在2.4之后) 常用的设置包括 taglib和jsp-property-group两个子元素.其中ta ...

  2. SGU 110. Dungeon 计算几何 难度:3

    110. Dungeon time limit per test: 0.25 sec. memory limit per test: 4096 KB The mission of space expl ...

  3. C#几种截取字符串的方法(split 、Substring、Replace、remove)

    C#截图字符串常用的方法有 split .Substring.Replace.remove等. split的使用: 1. Split( Char ()) 返回的字符串数组包含此实例中的子字符串(由指定 ...

  4. flask+APScheduler 任务调度,计划任务,定时任务

    from flask import Flask from flask_apscheduler import APScheduler # 引入APScheduler from test124 impor ...

  5. Linux Framebuffer save as picture

    /********************************************************************************* * Linux Framebuff ...

  6. Android Gradle 理解

    /********************************************************************************* * Android Gradle ...

  7. Linux C socket 封装

    /************************************************************************** * Linux C socket 封装 * 声明 ...

  8. BZOJ5091: [Lydsy1711月赛]摘苹果【期望DP】

    Description 小Q的工作是采摘花园里的苹果.在花园中有n棵苹果树以及m条双向道路,苹果树编号依次为1到n,每条道路的两 端连接着两棵不同的苹果树.假设第i棵苹果树连接着d_i条道路.小Q将会 ...

  9. JQuery 基本知识,选择器,事件,DOM操作

    一.基本知识 Jquery是什么? 它就是一套JS方法包,jQuery是一个快速,小巧,功能丰富的JavaScript库.它使得HTML文档遍历和操作,事件处理,动画和Ajax更容易使用易于使用的AP ...

  10. CTF竞赛(简介)

    一.解体模式(Jeopardy) 可通过互联网或现场网络参与,解决网络安全技术挑战题目,并以分值和时间排名. 题目主要包括:逆向,漏洞挖掘与利用,web渗透,密码,取证,隐写,安全编程 二.攻防模式( ...