Rumah >pembangunan bahagian belakang >tutorial php >PHP应该学什么技术,如何学好PHP?

PHP应该学什么技术,如何学好PHP?

WBOY
WBOYasal
2016-07-25 08:46:191002semak imbas
想进入一个程序的世界的学者们,一开始PHP应该学什么,如何学好PHP呢?小编为大家分享php学习以下经历的各个知识点一一讲解。




首先,大家要达成一个共识,就是学习任何一门编程技术都需要我们付出心血,都要讲求循序渐进,由浅入深。对每一个知识点要搞透,然后通过案例来加深认识,最后还需要把学习到的各个知识点实际运用到项目中去,才能融会贯通,最后才能到达能自如的驾驭项目的水平, 现在我们就来看看应该怎样一步一步的学习php这门编程技术,先看看学习PHP的顺序图,此学习顺序图是我推荐的学习内容和学习顺序(除了这里列出的内容,要走向高手之路肯定还有更多技术需要学习,我这里只是对于初学者列出的主干学习内容,并不是全部):

一般的共同性质问题,大致是:
1.应该怎样学习PHP,学习的顺序是怎样的?
2.PHP学好后,可以做什么事情?
3.听得懂课,但是一旦自己独立写程序,就没有思路?
4.学习PHP需要怎样的基础,算法重要吗?
file:///C:/Users/ASIMO/AppData/Local/Temp/TempPic/4TV24Z%7BPKCGSR%7DJQF80%7BLZ4.tmp
对于PHP初学者来说,看到这样多的内容,心里已经开始打退堂鼓了,但是,万丈高楼平地起,我们只要坚持每天学习一部分内容,最后总会把这些技术都精通掌握的。

       PHP这门技术相对Java.Net来说,是比较简单的。PHP最主要的作用就是做站,也就是说PHP技术是用于开发网站的,比如目前世界排名前40的网站,有70%都使用到了PHP技术,比如 facebook、youbute 、新浪、百度、淘宝、搜狐和腾讯这些知名的网站都有很大一部分业务是用PHP来开发的,因此被誉为web开发首选技术。开发PHP的软件可以说是简单的记事本也可以是一些集成开发软件,比如 zendstudio ,这里我列举一些常见的PHP开发工具:
①     Editplus ② Zend Studio ③ PHP Coder ④ phpedit ⑤ easyecpilse ⑥ dw ⑦ vim
windwos下我常用的是 editplus 和 zend studio ,在Linux下我推荐使用vim来开发更专业。

       要学习php开发一定要按照正确的顺序进行学习(如上图PHP学习顺序图所示),很多人被一些《xx天精通***》这样的垃圾书的影响,PHP这门语言相对JAVA要简单,开发人员不需要学太多即可通过面向过程的方式开发出一个"某某管理系统",因此社会上充斥着大量只会面向过程的开发人员,他们不懂Http协议!不懂Javascript!不懂PHP工作原理!不懂什么是真正的面向对象程序设计,这种"不不不"开发人员能找到4000的工作 就已经非常值得庆幸了。企业中最需要的是对"Http协议、Javascript、PHP工作机制、PHP程序调优、LAMP环境调优、OOP"等技术熟悉的人,而这样的人是非常难招的。大家记住欲速则不达,速成的结果就是以后浪费更多的时间,回想这么多年你走过的路,有多少次为了走快点就跳着走,最后又浪费时间返工的事情,按照正确的顺序才能更快、更好的掌握PHP。
       学习PHP分为以下几个阶段,每个阶段都有学习的重点和注意事项,下面详细给大家介绍:

       第一阶段: PHP前端网页开发基础,在这一个阶段中分为以下几个阶段课程
       (1)HTML基础与加强
html语言,HTML语言背景知识,HTML全局标签,HTML格式标签,HTML文件标签,HTML超链接标签,HTML图像标签,HTML框架标签,HTML客户端图像地图,HTML表格标签,HTML帧标签,HTML表单标签,HTML头元素,HTML分区标签
       (2)XHTML基础与加强
XHTML与 HTML的差异,Xhtml语法,XHTML DTD,XHTML验证,XHTML模块,XHTML属性,XHTML事件,XTHML结构化
       (3)HTML5设计与应用
HTML5介绍,HTML5多媒体处理,HTML5画布,HTML5 Web存储技术,HTML5表单,HTML5 属性和事件HTML5的常用标签(比如:applet标签、article标签、aside标签、audio标签、canvas标签、datalist标签、details标签等)
       (4)CSS基础与加强
CSS 简介,CSS基础语法,CSS 派生选择器,id 选择器,CSS类选择器,CSS盒子模型
CSS背景 、文本 、字体 、边框 、外边距 、内边距 、列表 、表格CSS 高级: CSS 尺寸、分类 、定位 、伪类 、伪元素 、媒介类型
       (5)DIV+CSS设计与应用
使用知名网站的首页深入剖析DIV+CSS的web标准:盒子模型经典案例-优酷首页面、仿sohu首页面布局、可爱屋网站首页面。涉及知识点包括: (CSS定位的四种方式、左浮动、右浮动、清除浮动、标准流和非标准流、设置对象的层叠顺序、块元素和行元素的转换等)
       (6)Javascript基础语法:
Javascript基本介绍、Javascript的发展史、Javascript运行原理剖析、Javascript特点、
Javascript的标识符、Javascript基本数据类型(数值类型、布尔类型、字符串类型)、
Javascript复合数据类型简介(数组、对象)、Javascript特殊数据类型(NULL、undefine)、
定义变量、初始化、赋值、数据类型转换的两种方式(自动转换、强制转换)、Javascript的运算符(算术运算符、关系运算符、逻辑运算符)、Javascript的位运算和移位运算
       (7)Javascript三大流程控制
顺序控制、分支控制(单分支: if语句、双分支: if-else语句、多分支 if-else if-else 语句, switch-case-default语句)、循环控制(for语句、while语句、do-while语句)、在ie和firefox如何调式Javascript
       (8)Javascript函数
函数基本概念、函数的定义、函数的调用方式及调用过程深度剖析、函数使用细节讨论、使用Function类创建函数、函数实际运用(打印金字塔、九九乘法表)、函数的递归调用、
Javascript常用系统函数使用(encodeURI、decodeURI、eval、parseInt、parseFloat、isNaN等)
       (9)Javascript数组
数组的基本使用、使用for/while遍历数组、数组实际运用(计算班级平均分)、二维数组的基本使用、使用for遍历二维数组、对二维数组转置处理、数组排序介绍、冒泡排序、顺序查找和二分查询法
       (10)事件驱动
Javascript的Event-Driven机制、事件源、事件处理程序、事件名称、事件对象是什么、
事件类型(鼠标事件、键盘事件、HTML事件、其它事件)、Javascript访问CSS技术、
事件驱动的浏览器兼容性处理、常用的18个事件(onblur、onchange、onfocus、onkeydown、onmousedown等)  综合案例(Javascript版计算器)
       (11)DOM编程
DOM编程介绍(HTML DOM与XML DOM)、DOM编程实例入门、BOM介绍、DOM对象介绍、window对象详解、history对象详解、location对象详解、navigator对象详解、screen对象详解、event对象详解、document对象详解、body对象详解、style对象详解、WEB版坦克大战游戏、forms对象(集合)、from对象、images对象(集合)、img对象、links对象(集合)、link对象、all对象(集合)、table对象详解、tableRow对象和tableCell对象、基于table对象的用户管理系统
       (12)WEB网站设计与应用->商业级网页制作


我曾经这样说过一句话:有些朋友学习技术,像一个大胖子,肚子大,脑袋大,看起来很唬人,但是腿很细,风一吹就倒了。就是说基础太差了,结果就是越学越迷茫,最后,就放弃了。因此我说”基础很重要” , 还有一点我要强调:在视频教程中我讲了很多的案例并布置了作用,一定要自己亲手把代码熟练的写出来,记住是亲手写出来,而不是照着我的代码抄,更不能是看懂了我的代码就以为自己掌握了,要知道“看懂了”和“会写了”之间差着十万八千里呢! 我们学习编程是”做中学”,是做的过程中学会的,而不是会了在做,正是在编写一行行代码过程中,逐渐建立编程思想的,思想→代码 这个过程是需要敲很多代码的。
file:///C:/Users/ASIMO/AppData/Local/Temp/TempPic/G7GRXYP~EQ94)MR4~E20Y3I.tmp
       用卖油翁的一句话说:“我亦无他,但手熟尔”,请永远记住“巧是从熟练中演变出来的”,这就是我们常说的“熟能生巧” 。
第二阶段 PHP核心编程
       (1)PHP基本语法加强
Apache-- directory配置段、一个IP和多个域名绑定的两种方式、HTTP协议入门介绍、Apache逻辑组件介绍、Apache生命周期、PHP运行之时 序图、PHP数据类型加强、PHP各种运算符加强、PHP三大流程控制加强、位运算(按位与、按位或、按位异或、按位非、位左移、位右移)、二进制(原 码、反码、补码)、PHP版本在线贷款计算器。
这里,我想说明一下: PHP基础语法看似简单,但是也不可大意,有些php程序员工作了2年,对PHP运行的原理都不清楚,对Apache的一些重要调优配置也不了解,这样的程序员,在公司是不行的,很难得到提升。所以就一直是一个编码工人,薪资也上不去。
比如面试中经常问到: PHP中一个整数的范围是多少, 小数的能表示的范围是多少? 再比如如何在Apache中配置一个404错误页面,如何给一个主机配置一个域名,具体怎样操作?这样一些基础的问题都必须在这个阶段搞定。推荐大家看 传智播客php视频教程 23讲-45讲 ,有详细到位的讲解。
       (2)PHP函数
PHP函数的基本介绍、如何自定义函数、PHP页面调用函数、require()、require_once()、include()和include_once()的区别、从内存分析PHP函数调用过程、函数使用需要注意的细节、函数值传递和引用传递的区别。
函数是我们php编程最重要的一个知识点,也是进行模块化编程的基础,掌握好函数可以提高代码的复用性、可读性和可维护性。
       (3)数组、排序和查找
数组 的基本概念、数组的引用方式、数组引用陷阱、与PHP数组相关的函数(count、is_array、print_r、explode等)遍历数组的三种 方式、删除数组元素和数组运算符、数组使用细节总结、内部排序法和外部排序法介绍、冒泡排序和快速排序、选择排序和插入排序、顺序查找和二分查找、二维数 组介绍和使用。
依据 我的经验,我们去找工作的时候,一定会一道关于排序和查询的题,最常见的问题是: 请你写出冒泡排序法,并使用二分查找来查找一个数。在项目开发中,数组是衔接变量和函数的重要数据类型,在MVC开发中,往往需在控制器中将数组分配给视 图去显示,在算法中,数组也是变化最为灵活的。
       (4)面向对象编程
面向 对象编程基本概念、类和对象的关系、如何定义类、成员属性(变量)、如何创建对象实例及如何访问对象属性、对象在内存中存在的形式、栈、堆、全局区、常量 区和代码区的关系、成员方法(函数)及使用细节、构造方法(函数)、默认构造方法(函数)、this的基本概念和使用、析构方法(函数)、PHP的对象垃 圾回收器、静态变量(类变量)的概念和使用、静态方法(类方法)的概念和使用、面向对象编程的三大特征介绍、面向对象编程-封装、面向对象编程-继承、面 向对象编程-多态、访问控制修饰符(public、protected、private)、方法重载(overload)、方法重写 (override)、方法重载(overload)和方法重写(override)的比较、PHP魔术函数(__set __get __construct __destruct __call等 )和魔术常量(__LINE__ , __FILE__ ,__FUNCTION__等 )、抽象类(abstract class)的概念和使用接口(interface)的概念和使用、接口编程和继承的区别、关键字final的使用、常量关键字const 的作用和使用注意事项、面向对象编程之强大的反射机制、面向对象编程之动态代理。
面向对象编程已经成为PHP编程的主流,面向对象编程让程序变得更加强大和灵活,更利于项目的开发和维护。关于面向对象编程 在 传智播客 php视频教程 61讲-78讲,看看什么才是真正的PHP面向对象思想,什么是真正的OOP。
       (5)错误处理和异常处理
错误处理的基本概念、PHP处理错误的三种方式介绍、使用die()进程错误处理、自定义错误和错误触发器、错误日志、错误级别介绍、PHP异常处理的基本介绍、PHP异常处理(try throw catch)、自定义异常、如何设置顶级异常处理器、异常使用的规则。
在编写php web 应用程序时,错误处理是一个重要的部分。如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门 。所以大家需要清楚在PHP编程中如何对错误和异常进行有效的处理,从而保证程序的安全和健壮。
       (6)预定义超全局数组
预定义超全局数组-基本概念、$_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILES 、$_COOKIE、$_SESSION、$GLOBALS、$_GET 使用陷阱(sql注入和中文乱码问题)
       (7)cookie和session
什么 是会话、cookie的基本概念、cookie的curd操作、cookie重要的api介绍、cookie运行原理图解、cookie的实际运用(显示 用户上次访问时间、显示用户上次浏览过的商品、)、cookie使用的注意事项、session数据存放的位置和形式、session的curd操作、 session运行原理图解、session实际案例-在线购物车、IE禁用Cookie后的session处理方案、session防止用户非法入侵、 session配合验证码使用、php.ini 中关于cookie和session配置说明(重点,难点)、自定义会话处理器、Session和Cookie的区别。
Cookie(小甜饼)是客户端技术,服务器把每个用户的数据以cookie的形式 写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。
Session 是服务器端技术,利用这个技术,服务器在运行时可以为每一个用 户的浏览器创建一个其独享的session文件,当用户再去访问服务器中的其它web资源时,可以从用户各自的session 中取出数据为用户服务。Session和Cookie是最重要的用户行为跟踪技术,尤其是电商,sns项目中运用广泛,因此是我们学习的重点和难点,也是 面试笔试的重点。关于cookie和session大家可以参考传智播客 php视频教程 114-121讲
       (8)PHP文件编程
文件及文件编程是什么、文件流的基本概念、文件的操作方式、PHP文件编程函数汇总介绍、最常用的13个文件函数、使用文件完成网站计数器、文件上传下载操作-mini版音乐共享网、无限级文件扫描器。
文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保存视频 ,声音...,本章节要求同学们掌握文件的各种操作和上传下载,动态创建和删除目录,文件和无限级扫描文件等, 掌握好这些知识点对我们项目开发非常重要。
       (9)PHP绘图技术
php绘图坐标系、绘图步骤说明、绘图快速入门、绘图最常用的函数、绘图技术的实际运用—人口分布饼状统计图、专业的报表开发--JpGraph、JpGraph的安装和配置、JpGraph实际应用-网民支持情况统计图、JpGraph中文乱码处理。
如果 你使用过财务软件,那你一定看见过各种对财务数据进行统计和分析 的图表,可能是表格,也可能是饼状图、柱状图、曲线图..,简单的说,就是使用图表动态显示数据。而这些图表的显 示都要使用到PHP的绘图技术,绘图技术要求熟练的使用PHP的绘图函数完成项目的需求。能开发一些统计图,非常有实用价值。比如:
       [img]file:///C:/Users/ASIMO/AppData/Local/Temp/TempPic/@$EU9Q4XE[OQZY99JQF$N(D.tmp[/img]

       如何检验自己的学习效果,看看下面的一些面试题 , 看看能完成多少? 如果能正确完成80%,说明这个阶段学到还不错。
       练习1: 简述echo(),print(),print_r()的区别?
       练习2: 说出PHP的超级全局变量数组,共九种
       练习3: 如何在一个php函数中使用具有全局属性的变量,说出两种方式
       练习4: 三个小题:
4.1.跳水比赛,8个评委打分。运动员的成绩是8个成绩取掉一个最高分,去掉一个最低分,剩下的6个分数的平均分就是最后得分。使用一维数组实现打分功能。
4.2.请把打最高分的评委和最低分的评委找出来。
4.3.找出最佳评委和最差评委。最佳评委就是打分和最后得分最接近的评委。最差评委就是打分和最后得分相差最大的。
       练习5: include和require都能把另外一个文件包含到当前文件中,他们有什么区别?Include和include_once又有什么区别?
       练习6: 写出一个能创建多级目录的PHP函数
       练习7: 写出一个函数,能递归列出某个目录下的所有文件夹和文件名.
       练习8: 在防止SQL注入的时候,通、会把单引号、双引号等转义,需要用到哪个函数
       练习9: 写出插入排序法和快速排序法代码
       练习10: 二分查找的原理是什么? 请写出二分查找函数
       练习11: 写出php的public、protected、private三种访问控制模式的区别
       练习12: 请写出一个完整的严谨的单例模式
       练习13: __set 和 __get 魔术函数是做什么的,在什么时候被触发
       练习14: 如何防止对象克隆, 对象克隆会复制 static属性吗?
       练习15: 说说strip_tags的作用和用法?
       练习16: 如果需要原样输出用户输入的内容,在数据入库前,要用哪个函数处理?
       练习17: 如何控制多个进程去并发删除,插入和更新数据库的某张表?
       练习18: PHP的安全模式和非安全模式的区别
技术就是一层窗户纸,捅破了,你感觉没有什么,不就是这么简单吗?可是如果你不知道,就感觉很神秘,因此你了解的知识点越多越底层,就可以让你的项目更有技术含量。
       反过来,如果我们知道很多知识点,但是不会把知识点灵活的运用到项目中,就成了> 中的段誉,空有无穷的内力,就是不知道如何运用。所以,学会做项目,做规范的项目也是非常重要的第三阶段:MySQL数据库编程&中级项目阶段

(1)    mysql数据库
从 目前看,任何一个有商业价值的项目或者网站,都离不开MySQL数据库, 因此系统深入的掌握MySQL数据库各种操作非常重要,重点是围绕ddl/dql/dml/dcl/dtl学习。同时要学会在项目中如何设计出有商业价值 的数据库模型的技巧,并初步了解到MySQL的优化细节。作为一个合格的PHP程序员,我觉得以下知识点是必须要掌握的:

MySQL 数据库的三层结构、MySQL数据库的安装和配置、数据库命令行的常见操作(启动、连接、操作、关闭等)、SQL语句分类(ddl/dml/dcl /dql/dtl)、创建、查看、删除、修改、备份和恢复数据库、如何创建表及MySQL数据类型详解、修改、删除表操作、如何对数据表进行CRUD操 作、select语句中使用orderby、合计函数(count/sum/avg/max/min)、select语句中使用group by 和having子句、时间日期常用的10个函数、字符串相关11个函数、数学函数10个、流程控制函数3个、其它函数4个、MySQL中文乱码处理、 PHP操作数据库实例、MySQL表类型和存储引擎(BDB/HEAP/ISAM/MERGE/MYISAM/InnoBDB)、如何选择表的存储引擎、 事务的基本概念、事务和锁、事务提交和回滚操作、PHP程序中如何使用事务、事务隔离级别、表的主键和外键、多表联合查询和笛卡尔集、自连接、单行子查询 和多行子查询、蠕虫复制创建海量表、合并查询(union , union all,intersect , minus)、表的内连接和外连接(左外连接、右外连接和完全外连接)、维护数据的完整性-约束(not null、unique, primary key,foreign key,和check )、商店售货系统表设计案例、索引(主键索引/唯一索引/全文索引/普通索引/复合索引)、索引优缺点分析、触发器和存储过程

(2)数据库编程(mysql mysqli pdo)
mysql 扩展库简介、mysql扩展库操作mysql数据库程序、mysql_query()执行结果、释放资源和连接、对mysql数据库进行CRUD、 mysqli扩展库简介、第一个mysqli扩展库程序、$mysqli->query()执行结果、mysqli对数据库进行CRUD操作、 mysqli扩展库增强--批量执行sql语句、mysqli扩展库增强--事务控制、事务的acid、预处理 MySQLi_STMT、PDO的介绍和使用

(3)中级项目
       看十遍,不如自己实际动手做一个项目。项目经验就是从一行行 代码中积累的,编程的能力也是通过攻克一个个程序bug提高的。中级阶段项目是把前面学习过的知识点实 际运用到项目中的最佳时机,也是检验自己学习成果的时候。当你通过熬夜点灯,网上查资料把项目最终完成时, 经历了项目从无到有,从有到完善时,你的编程能力,把控项目的能力在潜移默化中提高了,为学习下一个阶段 (PHP高级编程)打下扎实的基础。我推荐几个项目给大家,大家可以根据自己的实际情况选一个项目来做.
BBS系统: 为互联网用户提供互动和交流功能。

以上就是php学习的内容知识点,更多相关资料:http://www.kokojia.com/list/219.html



Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn