欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-06-07 11:22:03
...
想进入一个程序的世界的学者们,一开始PHP应该学什么,如何学好PHP呢?小编为大家分享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