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. 059——VUE中vue-router之路由嵌套在文章系统中的使用方法:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Android轮播图Banner的实现

    从慕课网上学了一门叫做“不一样的自定义实现轮播图效果”的课程,感觉实用性较强,而且循序渐进,很适合初学者.在此对该课程做一个小小的笔记. 实现轮播思路: 1.一般轮播图是由一组图片和底部轮播圆点组成, ...

  3. vue 表格导出excel

    首先要install两个依赖, 1 npm install -S file-saver xlsx 2  npm install -D script-loader 在项目src目录下新建一个文件夹ven ...

  4. Pycharm(二)创建项目

    首次打开就是这样,可以创建新项目,打开一个项目,也可以从版本控制打开项目 我们就新建项目吧,Create New Project 创建项目就是这样了 Location:项目路径. Interprete ...

  5. define 常量的定义和读取

    define(‘常量’,‘常量值’)----------------------define来定义常量, echo 也能输出常量, get_defined_constants(true)------- ...

  6. 揭秘Keras推荐系统如何建立模型、获取用户爱好

    你是否有过这样的经历?当你在亚马逊商城浏览一些书籍,或者购买过一些书籍后,你的偏好就会被系统学到,系统会基于一些假设为你推荐相关书目.为什么系统会知道,在这背后又藏着哪些秘密呢? 荐系统可以从百万甚至 ...

  7. asp.net webform 当前上下文中不存在名称“__o”

    错误 CS0103 当前上下文中不存在名称“__o” 最近在搞一个webform项目, 再页面写了点<%%>代码, 结果编译下居然出现了这个错误 炸裂啊,  这是什么毛线, 看起来是 In ...

  8. 小程序和ThinkPHP5结合实现登录状态(含代码)

    本篇文章给大家带来的内容是关于小程序和ThinkPHP5结合实现登录状态(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 微信小程序中,一般会涉及三种登录方式: 1. 使用微 ...

  9. C#反射 字符串转为实体类,并做为参数传入泛型方法中使用

    工作中有这样一个需求,有N张不同的报表,每张报表对应一个数据源,统计数据采用内存方式,首先在内在里定义了数据源对应实体.统计条件用lamdba表达式式实现,通过工具对单元格进行定义.在实现过程中针对每 ...

  10. URL的应用

    1.对于Android来说,开发应用都会去访问服务器地址,那么就要连网,需要通过URL. 先new一个URL来获取路径,然后利用HttpURLConnection来连接并打开url,并通过get 请求 ...