WEB前端第五十三课——Xampp、Apache、PHP基础⑴常量和变量定义、数据类型
1.Xampp介绍
⑴ 前台语言:用于处理用户界面交互(html、css、javascript……)
可以在浏览器/node中运行,通过浏览器中解析前台语言的机制(解析器),
翻译成二进制语言提供给计算机读取。
⑵ 后台语言:用于处理业务逻辑实现(C、C++、java、php……)
在服务器中运行,通过服务器中安装的后台语言解析器,翻译成二进制语言,
常用后台语言解析器:Apache、Tomcat、Nginx
⑶ xampp软件,一款常用服务器集成软件,其中包含了Apache、MySQL、Perl等服务器,
安装xampp软件后,计算机即可作为服务器解析相关的后台语言
⑷ xampp软件下载:
https://www.apachefriends.org/zh_cn/download.html
或 https://www.xampp.cc/archives/10430
⑸ xampp安装及配置
忽略前面的警示框,直接下一步进行安装,最好安装在系统盘以外的盘符;
在安装目录中找到并运行“xampp-control.exe”,首次运行通常会报错“……blocked port……”,
通过 config修改“httpd.conf”和“httpd-ssl.conf”配置文件中的端口号,避免与端口冲突;
在“httpd.conf”文件中修改默认的80端口(3处),在“httpd-ssl.conf”文件中修改默认的443端口(2处),
将默认端口改为不冲突便于记忆的即可,然后start运行Apache服务器。
⑹ Apache服务器启动报错
通常按照前述方法修改默认端口号之后,就可以正常启动Apache服务器了。
但是,在XAMPP Control Panel v3.2.4版本中,修改后还是无法正常启动?
报错信息“…Apache shutdown unexpected…a blocked port…”,异常截图如下:
通过启动安装目录下的“apache_start.bat”文件,可以看到报错位置,截图如下:
再次打开 “httpd-ssl.conf”配置文件,查看第36行发现,监听端口号后默认添加了“##”,截图如下:
删除端口号后面的“##”,第36行改为“Listen 9443”,保存后再次启动,防火墙允许访问
Apache服务器启动成功
⑺ 访问服务器IP地址
在浏览器中输入IP地址“127.0.0.1:8091”,
默认的访问位置是Apache安装目录下的“…\htdocs”文件夹,
该文件夹也是放置程序代码的默认位置。
2.Apache用法
⑴ 在WebStorm中添加PHP,设置路径:File/Settings.../Editor/File Types,
在左边找到PHP并选中,然后在注册模式中添加“*.php”文件即可。
⑵ 重新设置文本代码,由于将WebStorm的项目位置修改为“…\htdocs”,
文本代码会重置为系统默认,需要重新设置为UTF-8(3处),
设置路径:File/Settings.../Editor/File Encodings。
⑶ “\htdocs”文件夹是Apache的根目录,Apache只解析这个文件夹下的内容,是Apache解析的起点,
因此,要求把所有的后台文件放在这个文件夹下。
⑷ 访问Apache服务器文件的本地网络路径:“127.0.0.1:8091”、“localhost:8091”,
或通过cmd使用ipconfig查询本地IP地址。
3.PHP基础
⑴ php标记,PHP解析文件时会根据起始标记(<?php)和结束标记(?>)确定代码范围,
任何起始标记和结束标记之外的部分都会被PHP解析器忽略,
此种解析方式使得PHP可以被嵌套到各种不同的文档中去。
注意:起始标记和结束标记必须独占一行!
⑵ 分隔符号,PHP语言需要在每个语句后使用英文分号(;)表示结束指令。
⑶ 注释方法,PHP的注释支持C、C++、Unix、Shell等风格的注释方法,
但通常使用 js中的注释风格。
⑷ 输出方法,echo"...",该命令用于输出内容,而写在 echo后面的代码能够直接被显示出来;
var_dump('...'),输出信息除内容本身外,还包括数据的类型和长度;
print_r(),一般用于输出数组。
⑸ PHP文件必须以“.php”作为后缀名。
4.PHP变量
在PHP中,变量使用一个美元符号后面跟变量名的方式来表示。
语法:$变量名=value;
规则,变量名与PHP中其他的标签遵循相同的规则,
⑴ 一个有效的变量名由“字母或下划线”开头,后面跟上任意数量的数字、字母或下划线;
⑵ PHP中的变量名大小写敏感;
⑶ PHP中可以在写出变量名后直接使用,不需要 js中的“声明赋值”过程;
⑷ *PHP中变量之间的赋值传递总是“赋值传递”,如果必须“地址传递”则需要使用 &符号;
⑸ PHP中变量的作用域采用函数级作用域(暂时)
5.PHP常量
常量,是指在脚本执行期间该值不能改变的标识符,
常量默认为大小写敏感,一般常量标识符使用大写。
语法:define('常量名','value值');
规则,常量名与PHP中其他的标签遵循相同的规则,
⑴ 常量可以认为是“宏定义”在PHP中的一个体现;
⑵ 为了区分变量和常量,通常在定义常量时均采用大写;
⑶ PHP中并不是所有常量的值都不能改变,MC(魔术常量)可以发生改变。
比如:__FILE__(文件)、__DIR__(目录)、……
6.表达式
在PHP中所写的任何(有值)内容都可以称之为表达式。
7.常见数据类型
⑴ Boolean 布尔值
一般使用TRUE和FALSE常量指定布尔值,两者均不区分大小写;
可以使用“(bool)”或“(boolean)”强制转换修饰符,将非布尔类型的变量或表达式强制类型转换;
当转换为布尔类型时,以下值被认为是FALSE:
布尔值 FALSE本身
整型值 0
浮点型值 0.0
空字符串,以及字符串"0"
不包括任何元素的数组
特殊类型的NULL(包括尚未赋值的变量)
除上述值外,所有其他值都被认为是TRUE(包括任何资源和NAN)
-1和其他非0值(包括正负数),都被认为是TRUE
⑵ Integer 整数
整型值可以使用二进制、八进制、十进制或十六进制;
使用八进制表达,数字前必须加上“0”;
使用十六进制表达,数字前必须加上“0x”;
使用二进制表达,数字前必须加上“0b”
PHP7以前的版本,如果向八进制数传递了一个非法数字(如9),
则其后面所有数字会被忽略,PHP7以后的版本则会产生Parse Error错误。
可以使用“(int)”或“(integer)”方法将非整型变量或表达式进行强制类型转换。
注意:切忌对未知的分数进行强制整型转换,可能会导致不可预料的结果!
⑶ Float 浮点数
也可以称作“double 双精度”或“real 实数”,
语法:可以通过以下任何一种方式来定义浮点数
$f = 1.234
$f = 1.2e3
$f = 7E-10
注意:①不要直接比较两个浮点数的大小,因为这样没有任何意义;
②如果必须比较两个浮点数大小,则可以使用“epsilon”极小值的方式比较;
③NAN表示数学上无法用浮点数具体描述出的数字,和true以外的任何值进行松散或严格比较都会是false。
强调:
由于NAN代表着任何不同值,不用拿NAN去和其他值进行比较,包括其自身。
⑷ String 字符串
字符串中每一个字符等同于一个字节,因此php中只能支持256字符集,不支持Unicode;
语法:PHP中定义字符串可以使用单引号或双引号。
注意:
①PHP字符串中使用转义字符“\”来描述容易引起歧义的内容;
②PHP对双引号定义的字符串中的变量可以进行内容解析,而单引号则不行;
③PHP字符串允许多行定义,但会忽略多余的空格和换行;
④PHP中字符串拼接使用点号“.”实现,而不是加号“+”;
代码示例
$sum = 10; echo '2+8=10'; echo '<br>'; echo "2+8=$sum";
⑸ Array 数组
PHP中的数组实际上是一个有序映射,就是把keys关联到values上的类型。
语法:array(key=>value,...);
key可以是一个整数integer或字符串string,value可以是任意类型的值;
PHP5.4起,可以直接通过短数组“[]”的定义方式替代array();
注意:
①PHP中echo仅用于输出简单值,复杂的数据类型则需要通过print_r()函数输出;
②PHP中的数组类似与js中的对象结构;
③PHP中数组的读取和赋值可以通过数组名[键名]方式进行读写;
④PHP中数组的长度通过count()函数实现;
⑤PHP中添加数组添加value时,不会补齐key之间的差值,仅添加当前新增的键值;
⑹ Object 对象
PHP中要创建一个对象,必须通过new语句实例化一个类得到。
语法:$obj = new Func;
注意:
①PHP中类由class关键字声明,类名后没有小括号;
②PHP中类内部的方法由“->”来调用,而不是点号“.”运算符。
代码示例
class Favor{ public $countFavor = '3'; function play(){ echo '喝茶打麻将'; } } $myFavor = new Favor; print_r ($myFavor); // 调用类中的方法或属性是使用“->”符号。 $myFavor -> play(); // 调用勒种的属性时,不需要加前缀“$”符号。 echo $myFavor -> countFavor;
⑺ NULL 空值
通常表示变量未被赋值的状态,,Null类型唯一可能的值就是Null。
Null值不区分大小写。
语法:$Favor = null;
⑻ 判别变量数据类型的方法:
var_dump(变量|表达式),用于查看表达式的值和归属类型;
gettype(变量|表达式),用于查看变量或表达式的类型,不具备输出功能。