-
语法规范
- 文档中只有php代码,结束标记要省略掉
-
注释
- 单行:# 或者 //
- 多行:/* 代码 */
-
变量:
-
普通变量:$
-
可变变量:等量代换
$a = "b"; $b = "c"; $c = "hello world"; echo $c;//hello world
-
-
数据类型:
-
标量类型
-
整型:
-
浮点型
-
布尔型:true/TRUE/FALSE/false
-
字符串型:
-
定界符
-
单引号
-
双引号
-
heredoc:相当于双引号
-
nowdoc:相当于单引号
heredoc的写法: <<<"名称" 代码 名称: <<<名称 代码 名称; nowdoc的写法: <<<'名称' 代码 名称:
-
-
-
-
+ 转义符
+ \n \r \t (源代码中有效果,页面上只显示一个空格)
+ 花括号{}
+ 将变量括成整体
+ 对字符串的指定操作进行CRUD
+ 复合类型
+ 数组
+ 对象
+ 特殊类型
+ 资源
+ 空
+ 变量未声明
+ 声明一变量且复制为null
+ 经过unset()注销过的变量
```php
说明:
1. 单引号:不解析变量,双引号:解析变量
2. 单引号只解析 \\ 和 \'
3. PHP引擎在解析变量的时候会尽可能多的向后取合法字符,认为取的越多,这个变量的含义越明确
例:
$username = 'king'
期望得到:名称King是我
echo "名称$username是我" //报错
echo "名称$username 是我" //名称$username 是我,此时用空格,防止解析错误
echo "名称{$username}是我"
echo "名称${username}是我"
```
```php
{}:
1. 不用对中文字符进行CRUD
2. {}对多个空格只解析为一个空格,但字符串的长度不变
$string = 'king';
$string{7} = 'e';
echo $string;//king e
var_dump($string);//string(8) "king e"
```
-
数据类型转换
-
自动转换:
-
程序会根据上下文环境自行转换
-
其他类型转数值型:
-
true —— 1
-
false —— 0
-
null —— 0
-
字符串如果以非法数值开始——0,
以合法数值开始,一直取到第一个非法数值结束
-
-
其他类型转换为字符串型
- 数值型转为本身
- true——1
- false,null——空字符串
- 数组——Array
- 资源——Resource.id #数字
- 对象不能直接转为字符串
-
其他类型转为布尔型(是假的有)
0 0.0 空字符串''或""或'0'或"0",但"0.0"为真 null 空数组
-
-
强制转换
- 临时转换
- (变量类型)$变量名称
- 整型 int/integer
- 浮点型 float / double / real
- 字符串型 string
- 布尔型 bool / boolean
- 空 unset
- 数组 array
- 对象 object
- 通过系统函数
- interval($val)
- floatval(val)
- strval($val)
- boolval($val)
- 注意:临时转换不改变变量本身的类型
- (变量类型)$变量名称
- 永久转换
- settype(trpe)——设置变量类型,返回值为布尔型,其意为是否chengg
- gettype($var)——返回变量的类型,可能会被移除
- 通过变量的函数库来检测变量的类型 is_*($var),返回布尔值
- is_int() / is_integer() / is_long()
- is_float() / is_double() / is_real()
- is_string()
- is_bool()
- is_null()
- is_scalar() ——是否为标量类型
- is_array()
- is_object()
- is_resource()
- is_numeric() ——是否为数值型或字符串形式的数值型
- 临时转换
-
常量
-
系统常量
-
自定义常量
-
定义常量
5. 1. 1. 1. 1. define()——define($name,$value) 1. 常量名称不加$ 2. 常量最好大写 3. 常量默认区分大小写 4. 常量的作用域是全局 5. 常量一经定义,在脚本中执行结束才会被释放 6. 常量的值可以是标量类型,也可以是数组
-
const 关键字定义 —— const NAME = 值
-
-
使用常量
- 直接使用常量的名称即可
- constant($name)——根据常量名取常量的值
-
检测常量是否存在
defined($name)
-
获取所有已定义的常量
get_defined_constants()——返回值:包含系统变量和自定义变量的数组
-
魔术常量
__LIKE__ 当前行号 __FILE__ 当前文件的绝对路径和文件名 __DIR__ 文件的完整路径 __FUNCTION__ 当前的函数名称 __CLASS__ 当前的类名 __METHOD__ 当前的方法名 __TRAIT__ 当前的TRAIT名称 __NAMESPACE__ 当前的命名空间的名称
-
-
预定义变量
$globals 超全局变量,包含以下所有的预定义变量 $_SERVERS 服务器和执行环境信息变量 $_ENV 环境变量 $_COOKIE HTTP COOKIES $_SESSION HTTP SESSIONS $_FILE 文件上传的信息变量 $_GET HTTP GET变量,主要接受以?形式传递的数据——$_GET['名称'] $_POST HTTP POST变量,主要接受post形式发送的数据——$_POST['名称'] $_REQUESTS $_GET + $_POST + $_COOKIE
-
运算符
-
+-*/%
-
自增自减
注意:
- 数值型支持
- 布尔型不支持
- null只支持递增,不支持递减
- 字符串只支持递增,不支持递减
-
其他
$a<=>$b ——当$a小于,等于,大于$b时,分别返回-1,0,1的integer的值 $a??$b??$c
-
逻辑运算符()
and 短路 or 短路 xor 异或,不同为真,相同为假 ! && 短路 || 短路
-
错误抑制符 @ 抑制通知错误,但不能抑制语法错误和致命错误
-
三元运算符
-
优先级:有短路优先考虑,通过()来改变优先级,不重要
-
-
常用函数
mt_rand($min,$max) ——产生随机数
ord($charcter) ——将字符转为ASCII码
chr($ascii) ——将ASCII码转为字符
网友评论