最近新开了一个微信订阅号“飞策科技”,欢迎大家的关注,关注之后阅读更加方便。
当然,以后博客和订阅号两边都会更新。
CSDN免费下载、课程+书免费学,快来看看!
这里整理了本人PHP自学过程中的关键知识点,相信看完这一篇博客足矣入门PHP。
一)php认识
1)一门运行于服务端的脚本语言;
2)一般常用于做后台管理系统,或与html混合使用、结合第三方后台框架开发web应用等;文件名以.php结尾;
3)php原始名Personal Home Pagepersonal,后来更改为Hypertext Preprocessor,由拉斯马斯·勒德尔夫(Rasmus Lerdorf)编写,最初用于存放简历给hr浏览简历用,后来经过底层重写,再后来慢慢演变成一门用于网站开发或实现其他功能的语言,以及作为后端给前台提供服务。
二)php代码工作流程
1)php代码存放于服务器端,并运行;
2)客户端发送请求给服务端;
3)php代码执行,查询数据库或者加载其他文件,然后将结果返回给客户端。
说明:其中数据库查询要通过数据库database,文件的加载通过文件系统file system。
三)php优点
语法简单、学习成本低、免费开源、开发效率高、跨平台、开发部署方便和开源框架丰富等等。
四)php能做什么
1)创建动态网页,别以为只有其他前端脚本语言可以创建网页,php作为一门脚本语言,其实是可以实现动态网页的编写的,还可以和html一起混合编写;
2)php还能与服务器的文件进行交互,比如拿到服务器上的资源(文件等等)返回给客户端;
3)常见的处理任务还有处理表单事件,给客户端返回表单的处理结果和反馈;
4)发送和接收cookie;
5)与数据库进行交互。
五)php常用于开发的程序类型
1)基本的网站和博客是php开发比较常见的;
2)社交网络应用;
3)各种后台管理系统,一般涉及到数据存储和交互的应用都可以用到php;
4)php还可以编写搜索引擎和接口文档,因为涉及数据的交互存储和向客户端返回数据。
六)一些概念需要理解
PHP开发工具:PhpStorm、zenstudio、eclipse等;
ssh、scp、xampp、Linux、Nginx、Apache、xshell等。
xampp
xampp可以理解为php开发的环境依赖集成包或工具软件,安装这个集成软件之后php代码才能在系统环境跑起来,就像html、css或js代码运行环境是浏览器一样。
xampp集成了Apache、MariaDB、PHP和Perl这几个部分,第一个是服务器软件,第二个是数据库软件,后两个是两个语言开发环境。而开头的x指的是你的系统环境,比如Windows、Linux或者OSX。
安装完并且运行这个集成工具软件之后,就可以在本地电脑运行php代码了,也就是说你的电脑由于装了这个集成工具软件之后变成了服务器或者说具有了服务器环境特性。
安装完之后需要注意的是,存放代码的位置是一个叫htdocs的文件夹,php代码需要放在这个文件夹里面才能正常运行。
在浏览器地址栏输入localhost或者127.0.0.1或者输入你当前网络的IP地址,之后浏览器打开运行了一个文件,这个文件实际就是htdocs下面的index.php文件。
Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。由俄罗斯人伊戈尔·赛索耶夫开发,Nginx 可以在大多数Unix、Linux系统上编译运行,并有Windows移植版。
代理服务器
代理服务器是网络信息的中转站。一般情况下,使用网络浏览器直接去链接其它Internet站点并取得网络信息时,须送出请求信号来得到应答,然后对方再把信息传送回来。
代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,请求信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它不断将新取得数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。
代理服务器不仅可以实现提高浏览速度和效率的功能,它还可以实现网络的安全过滤、流量控制(减少Internet使用费用)、用户管理等功能,因此它既是一种网络防火墙技术,同时也可以解决许多单位连接Internet引起IP地址不足的问题。
反向代理服务器
也是代理服务器的一种,与前向代理(正向代理)不同,前向代理作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,服务端(如Web服务器)只知道这个前向代理的IP地址而不知道客户端的IP地址;
而反向代理是作为服务器端(如Web服务器)的代理使用,而不是客户端。客户端借由前向代理可以间接访问很多不同互联网服务器(簇)的资源,而反向代理是供很多客户端都通过它间接访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器。
前后向代理区别图例:
说明:图片来源:http://developer.51cto.com/art/201906/598036.htm,欢迎跳转阅读。
SSH和SCP
欢迎跳转阅读:说说SSH、SCP和SFTP的那些事儿-腾讯云开发者社区-腾讯云
七)语法部分
1)起步
php文件已.php后缀结尾,在php文件中可以编写和识别html标签代码,但是如果要写php代码需要怎么做呢?
需要使用下面所说的标识符包裹起来,代码就可以在标识符中间进行编写了。
<?php
......
?>
php代码可以混合在html代码中,谁混合谁都可以:
<?php
<div>
</div>
?>
<div>
<?php
......
?>
</div>
如果是纯粹的php代码,php标识符可以不加末尾的结束部分 ?>,但是如果后面跟的是html代码(比如第一种情况),则会报错,因为不是纯php代码,所以建议还是带上结束部分。如果要返回数据给客户端,需要使用echo/print等语句,而且既然它是一个脚本语言,当然可以和js一样写成多个标识符的形式:
<?php
......
?>
<?php
......
?>
2)注释
单行通过//或者#,多行通过/* */
<?php
//单行注释
#单行注释
/*
多行注释
多行注释
*/
?>
3)声明变量和使用
$a = 10;
echo $a;
注意命名规范,和其他语言类似,php声明的变量以字母和下划线_开头,由字母、数字和下滑线组成,建议使用驼峰命名法,而且对大小写敏感。
4)声明常量和使用
const THE_VALUE = 100;
echo THE_VALUE;
声明变量和常量的两者区别
1)常量只能被赋值一次,赋值两次会出错;
2)变量可以被赋值多次;
3)而且常量不可以重复定义,也就是不可以使用同样的名字声明两次。
php5之前的版本定义常量和使用
define('THE_VALUE',200);
echo THE_VALUE;
当然,如果要确保声明的常量大小写形式都能输出,则可以加一个true参数:
define('THE_VALUE',200,true);
这样就可以实现大小写都能输出了:
echo the_value;
echo THE_VALUE;
其他特性和const一样,但是实际上还是有很多区别的。
5)php数据类型
String、Integer、Float、Boolean、Array、Object、Null、Resource;
String
注意,php字符串相连接,使用.而不是加号+:
'hello'.'world';
两个字符串使用加号的结果是返回0,即false;
注意,单、双引号里面包裹的内容都是字符串类型,但是单引号内的内容只可能是字符串,而双引号内的内容如果是变量则可以被正常解析出来:
<?php
echo 'hello'.'world';
echo "the params is:$params"."haha";
?>
另外,很有可能使用到转义字符\,因为输出英文的时候经常使用到单引号,比如:they're here,这种情况就可以使用转义字符:they\'re here,
当然也可以使用双引号包住的形式:"they're