PHP为什么这么难学?

综合问答 2年前 (2023) http://www.bktl.cn

网友解答:

PHP同JAVA,Python,c相比,应该是相对简单的一门语言,而针对自学者来说,那就需要一个可行的计划,和足够的耐心来学习,如果全身心的投入编程中,四个半月就可以走马上任了,当然自己也得付出足够的毅力与时间去实践。

最好是当天学习到的知识当天消化,多敲代码,多去尝试着开发各种商城,系统等等。

下面我就想分享一下我刚开始学习PHP的时候,老师给我拟的一份四个半月学会PHP的学习大纲。总共分四个阶段。

第一阶段

html+css(两个星期(10天课)周六周天完成京东商城首页和注册页面)

第二阶段

1.php基础阶段(10天课程,从php的语法开始学习,到循环语句,条件语句...基本学习没门语言开始学习的时候都要学习的基础)

2.mysqli扩展库对数据库的操作(3天)

3.mysql数据库学习(创建表,增删改查,数据库和数据库表的导入导出)(3天)

4.项目新闻列表分页(利用以上学习,使用a标签的get请求方式实现分页)(2天)

php进阶阶段

1)GD库(制作验证码)

2)文件上传,实现多文件和单文件的上传(2天)

3)正则表达式(1天)

4)文件目录(4天)

5)利用学的文件目录知识(新闻项目——实现没增加一条新闻就存入数据库的同时生成静态页面,存到文件中)(2天)

6)PDO类对数据库的操作(3天)

7)设计模式(3天)

8)面向对象(类,接口,继承,封装等)(4天)

9)封装文件上传类,mysql类(增删改查),验证码类(3天 ,一天一个)

10)session(利用session实现用户登录状态和非登录状态)(1天)

第三阶段

1.js语法基础(3天)

2.jq语法基础(3天)——写一个轮播图和一个定时器

3.ajax和json基础(3天)

4.ajax和json结合实现登录效果,页面不刷新请求服务器效果(2天)

5.redis基础(2天)

6.mongodb

7.memcached

第四阶段

tp框架一个商城(15天)

laraval框架一个博客(15天)(其中的一小点功能应用memcached缓存实现点赞)

微信接口的调用(微信公众号中用代码调用接口实现获取用户信息,调用天气接口,获取每天的天气)(5天)

小程序基础(10天)

自学的话要了解到博客里面有什么功能模块(并通过所学的知识实现他)

网友解答:

尽管其它的一些答主都觉得这个题目有点不可思议,但对于初学者尤其是网站开发尚未完全入门的人,还是非常有可能存在这样的疑问的。

比如,之前有个网友想做微信交互开发的程序,其实他的要求很简单:就是公众号粉丝发消息,然后根据不同的消息内容自动给出回复,这样的需求使用官方的demo稍微修改一下就能实现。但他仍然反复问我:我需要买哪些专业的书籍?还要学什么php框架吗?搞的紧张兮兮的。为什么会这样?就是因为他还没有搞清楚php到底是个什么东西,网络上很多看起来相当高深的文章把他吓坏了!

还有个更搞笑的事:一哥们学html和js相当入门了,有天突然问我:php不是通过echo输出内容的吗?为什么我页面中的php代码解析不了、全部原样输出?大概看了他的代码之后,没发现什么问题。最后才发现,他竟然把php代码直接写到了后缀名为html的文件中了,这还解析个鬼啊?

由此可见,新手刚学php时,由于各方面因素所导致的认知局限,觉得php难学是很正常的。同时也说明,目前市场上的php入门书籍或者相关的文章,接地气还不够,因为一些细节说明的不到位,会让他们走很多的弯路,浪费大量无谓的时间。好吧,如果你是新手,请好好阅读一下本篇回答,希望能给你一些帮助。

简单认识一下什么是php

所谓的php,其实就是一种服务器端的编程语言,它既可以获取客户端发送来的数据,也可以将处理好的数据输出并返回到客户端。而很多网友之所以把它戏称为“世界上最好的语言”,重要原因之一是它的语法规则和javascript太像了:会了js,php的使用也就水到渠成!

例如,我们在SublimeText3编辑器新建一个扩展名为php的文件,那么,该文件就会自动按php中的语法规则来进行编辑处理(如果新建的文件没有被识别为php,也可以在编辑器中手工点击下图中的圆圈所示位置,再选择php即可)。如下图:

只要你稍微了解一点html标签及css样式方面的知识,就应该能看懂上图中的字符串是什么意思。

以上代码中,只有包含在 <?php 和 ? 之间的部分才是php程序,<?php 和 ?其实就是php代码的开始和结束标记(相当于html页面文件中的标签)。在php标记之外的代码将被直接作为html的页面内容进行输出,因为php程序是可以嵌入到html代码中执行的。

这段代码其实就是声明了3个字符串变量$st、$div和$p,每个变量的值都是字符串形式的html代码。如果仅声明一个普通的字符串变量,可以直接这样:

$str = '我是字符串'; //这里用单引号或双引号都可以,具体区别稍后再说

如果单纯从语法上看,上述php代码和js相比有两处是明显不同的:

第一,php中的变量必须使用美元符号$,而js是使用var关键字;

第二,拼接字符串使用圆点符号,不能用 + 号,+ 号在php中仅用于算术运算。

除了上述两点外,其它规则与js都基本相同。比如,声明变量时不用指定数据类型、声明的同时可以=号赋值、语句要用分号结束、字符串数据需要用单引号或双引号括起来等等,就连给代码添加注释的方式也是和js完全相同的。现在,我们在上述代码的php标记外围再随便输入一些内容:

<b我是在php标记外面的</b<br<br

<?php

…php代码略…

?

<a href='http://www.diyofficecode.com'我也是在php标记外面的</b

然后在浏览器中直接运行这个test.php文件,通过控制台查看其代码如下:

通过查看代码就可发现,php文件中的所有代码最终都会解析为页面中的body元内容素进行输出,同时会自动加上head、html等标签元素。

这就说明:php类型的文件其实就是一种页面,只不过在它里面可以嵌入php程序代码而已。当它里面没有嵌入php代码时,就可以当做普通的页面文件来使用;当嵌入php代码时,其通过echo输出的内容将与原有的html代码融合在一起展示给用户。当然,在echo之前,php可以先进行一系列的逻辑运算和处理,这些逻辑运算的代码是不会展示在页面中的。

如上图所示,由于通过php程序输出的内容使用了class样式,因此,最终的页面展示效果中其字体为12px;而php标识外面添加的dom元素没有使用此样式,其字号明显就要大一些。

所以,请不要把php想的多么复杂和高深,姑且把它当成另外一种类型的页面就可以了。

面向对象与面向过程

和js不太一样的是,php同时支持面向对象和面向过程的编程方式,开发者可以在面向对象和面向过程二者中自由选择其一或是混合使用。

什么是面向对象?简单的说,就是把程序中所有可操作的东西都看成是一个对象,这样就可以使用它们的属性和方法并采用事件驱动的方式来对其进行各种操作。这个对初学者来说确实有相当的难度,需要考虑的因素比较多,不是一时半会就能学的会的。

既然面向对象有点难,新手完全可以从“面向过程”快速入门,而这也正是绝大多数php开发者所采用的方式。由于Web页面解析本身就是很“过程化”的,而在页面中嵌入面向过程的处理代码是非常自然的手段,其实现工具就是大量的使用php函数。php中的函数非常多,字符串、数组、数值、日期等等,使用时按它们的语法格式调用就行了,真的没啥技术含量。

总之一句话,别管他X的什么“对象”还是“过程”,理论上的东西先不管,自己能够干起来、先解决问题再说!这就是我给初学者的建议。

我是人民邮电出版社签约作者,欢迎大家关注我一起交流提高,谢谢!

版权声明:0844b9248a3823ff 发表于 2023-01-10 12:53:10。

本文由第三方用户分享仅代表作者观点,不代表本网站立场,秉承互联网开放分享的精神,目的在于传递更多信息,加强各行业互通交流,但对内容不作任何保证或承诺,请读者自行参考斟酌。网站发布的信息(包含但不限于版式、图片、字体、文章等素材)由第三方用户分享,版权归原作者所有,本站不承担任何相关的版权纠纷等相关责任。如您认为本篇内容侵犯了您的权益,请与我们联系,我们会及时处理。

百科塔让百科知识为更多人带来价值。

转载请注明:
本文标题:PHP为什么这么难学?
本文地址:https://www.bktl.cn/1496167.html