php手册
https://www.php.net/manual/zh/index.php
URL地址
格式
http://host[:post][abs_path]
http:// —— 表示通过HTTP协议来定位网络资源
host —— 表示合法的Internet主机域名或者IP地址
port —— 指定一个端口号,可以省略默认的80
abs_path —— 被请求资源的位置
DNS服务器 —— 解析域名
先看本地hosts文件,没有才回去网络这个服务器上去查
本地 hosts 服务
目录: C:\Windows\System32\drivers\etc
hosts查看本机的IP 以及服务名
php环境
安装软件
Web服务器 —— Apache等
数据库 —— MySQL 等
PHP应用服务器 —— php ( 执行PHP代码)
流行的生存环境 APache + PHP +MySQL
集成环境
自己配置环境太麻烦,直接用别人弄好的,我知道以下三个,可以任选其一,或者另辟蹊径:
PHPstudy —— 听别人说之前这个被爆有后门
xampp
Wampserver
记得改一下端口号,默认是8080,可以查查本机端口占用情况,自定义
访问地址
127.0.0.1 表示 本机电脑
在hosts中可以看到 localhost 等同于 127.0.0.1
集成规则
有 index.html 和 index.php ,会默认访问index.php
初始
- PHP 开始标记
- PHP 结束标志 ?>
- 页面最终是由HTML,CSS,JS来展示界面
php脚本中之外的内容PHP服务器不解释,可以写前端代码
- PHP可以嵌套在HTML代码中,同时在HTML中可以嵌套任意多个
- php文件结尾可以不需要 ,即 "
- 每行代码要加 ";" 分隔 , PHP 结尾 "?>" 隐含有 ";"
注释
- 多行注释 —— /**/
- 单行注释 —— //
空白处理
空白字符包括 空格 、 tab制表符、换行,在PHP中无关紧要(注都是英文输入法输入的),可以合理使用增强代码可读性
变量
在PHP程序中 ,使用变量之前是不需要声明的
PHP变量必须使用一个美元符号 $ 后面跟着变量名
变量释放
unset($变量名)
命名规则:
- 严格区分大小写
- 变量名由字母或者下划线开头,后面可以跟上任意数量的数字 ,字母 或者下划线
- 不能数字开头,不能有空格
- 可以使用特殊字符,例如:if,for等
可变变量
利用一个变量赋值一个字符串:$good
则$$good 表示 $well
"&" 引用
当使用&符号,会绑定两个变量,改变任意一个,另一个也会发生改变
变量类型
var_dump(变量名) 可以输出变量的类型
PHP是弱类型语言,不需要声明类型,直接赋值
- 布尔值(bool)
- 整型(int)
- 浮点型(float)
- 字符串 (string)
- 数组(array)
- 对象(object)
- 资源(resource)
- NULL
int(5) [1]=> bool(true) [2]=> string(1) "H" }
var_dump($a);
unset($a);
$a;//NULL
var_dump($a);
?>
字符串
- 单引号
- 双引号
- 定界符
定界符
<<< 之后提供一个标识符开始,然后是字符串内容,最后是同样的标识符标识结束
注意:标识符的定义与定义变量类似
格式如下:
$a = <<
字符串数据
在字符串中添加数据,需要用双引号或者定界符,同时用大括号包裹数据
类型转换
自动转换
- bool运算时,true 转化 整型 1 ,false 转化 整型 0
- null 运算时,转化为 整型 0
- string 与 int 或者 float 运算时,不太可控,尽量减少使用
强制转换
(int) (string) 等,用括号括住自己想要的类型
强制转换不会改变原来变量的数据类型,仅改变输出类型
常量
定义:define(常量名称,常量值);
defined()函数来检查是否定义某个变量
常量与变量
- 常量前没有美元符号($)
- 常量只能用defined()函数定义,不能使用赋值语句
- 常量可以不用理会常量范围的规则,在任何地方都可以使用(同一个内)
- 常量被定义就不能被重新定义或者取消定义
- 常量值只能是:bool,int,float,string类型
为空
""空字符、NULL、0、false、null的变量、空数组、没有任何属性的对象
预定义常量
PHP已经定义完成的
所有的预定义源码:
echo print_r(get_defined_constants());
其中以 __开头的预定义常量,又叫做魔术常量( 网页不同,也会随之改变 )
魔法常量(八个):不区分大小写
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。
__DIR__ 文件所在的目录。
__CLASS__ 类的名称
__METHOD__ 类的方法名
__TRAIT__ Trait 的名字
__NAMESPACE__ 当前命名空间的名称(区分大小写)
运算符
算数运算符
加(+) 减(-) 乘(*) 除(/) 取余(%) 自加(++) 自减(--)
字符串运算符
点 " . ",连接字符串,
当存在算式时先计算出结果,然后在字符串连接
赋值运算符
二元运算符
= 、 += 、 -= 、 *= 、 /= 、%= 、 .=
比较运算符
结果为bool值
< 、 > 、>= 、 <= 、 == 、 === 、 != 、 !== 、 <>
=== 表示 全等于,数值和类型都相同
!== 表示 不全等于
<> 表示 不等于
逻辑运算符
结果为bool值
&& 、 || 、 !
and 、 or 、 xor
&& 与 and 表示 逻辑与,符号两边都为非空,才返回true,又一边,为空,就返回false,左边为空,直接返回false,不会处理右边内容
2 && $a);//true
echo $a;//5
?>
|| 与 or 表示 逻辑或,只要有一边不为空,就返回true,当左边为true,则不会执行右边内容
2 || $a);//true
echo $a;//6
?>
xor 表示 逻辑异或,左右两边一样返回false,否则true
2) xor (5<2));//true
var_dump(0 xor (5<2));//false
?>
! 表示 逻辑非,也就是取法,true的内容变为false
位运算符
其他运算符
三元运算符 —— ? :
反引号 ` ` —— 获取命令行内容(存在跨平台差异)
cmd中命令,php -v是用来查看PHP版本,以及本地安装是否成功
@ —— 屏蔽错误
=> —— 数组(array)中使用 , 键(key) => 值(value)对
-> —— 对象(object)中使用
instanceof —— 用于确定一个 PHP 变量是否属于某一类 class 的实例
运算符优先级
结合方向 | 运算符 | 附加信息 |
---|---|---|
无 | clone new | clone 和 new |
右 | ** | 算术运算符 |
右 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 类型、递增/递减、错误控制 |
无 | instanceof | 类型 |
右 | ! | 逻辑运算符 |
左 | * / % | 算术运算符 |
左 | + - . | 算术运算符 和 字符串运算符 |
左 | << >> | 位运算符 |
无 | < <= > >= | 比较运算符 |
无 | == != === !== <> <=> | 比较运算符 |
左 | & | 位运算符 和 引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
右 | ?? | null 合并运算符 |
左 | ? : | 三元运算符 |
右 | = += -= *= **= /= .= %= &= = ^= <<= >>= | 赋值运算符 |
右 | yield from | yield from |
右 | yield | yield |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |
左 | , | 逗号运算符 |