PHP(二)变量 常量
一、变量 $ 符号开头
1.声明 : 不需要声明变量,但需要初始化
2.初始化:赋值=
3.释放:unset()
4. 判断一个变量是否存在:isset()
5. 命名: 字母 | 数字 |下划线,不可以数字开头,严格区分大小写,尽量不要使用PHP关键字作为变量名
例如:$name1 $_name2 $my_name
6. 变量的引用赋值:$c=&$a;
$a与$c指向同一块内存空间
即$a 随 $c 的改变而改变
7.变量与字符串之间使用.
连接
1.变量的类型
布尔类型:值为 true 或者是 false
int: 整数
float: 浮点数
string:字符串
数组:array
对象 :object
常量:define("a","90");
预定义常量
2.以下内容会自动转换为false
1.布尔值false
2.0
3.浮点型0.0
4.空白字符串/字符串0
5.没有成员的数组
6.NULL
3.字符串的定义
单引号: ' '
双引号: " "
定界符: <<<
注意:定界符的开始于结束不能有任何字符,包括空白字符和注释
单引号与双引号:
1.单引号不能解析变量,双引号可以解析变量;
2.双引号执行转义字符,单引号不执行;
3.单引号输出特殊字符时需要转义,双引号不需要;
4.当双引号中插入单引号,单引号中插入变量$a时(即 echo "'$a'"; ),会解析为"$a"
5.最好使用单引号,因为单引号效率高于双引号;
6.在双引号中插入变量时,变量要使用{}括起来;
注:也可在变量后加上一个空格或者一个逗号,这种方法虽然可以解析出变量内容,但输出时也会输出一个空格和一个逗号,不提倡使用。
例如:
结果为
定界符使用:
$a=<<<ABC
jiayou
ABC;
echo $a;
二、常量
<?php
define("a","90");
echo a;
echo "<br />";
define("b","jiayou");
var_dump(b);
?>
1.预定义常量
预定义常量 | 常量值 |
---|---|
PHP_OS | 执行PHP解释器的操作系统名称 |
PHP_VERSION | 当前PHP版本 |
DIRECTORY_SEPARATOR | 分隔符 : \ 或者是 / |
PHP_SAPI | 用来判断是使用命令行还是浏览器执行的,如果 PHP_SAPI==‘cli’ 表示是在命令行下执行 |
E_ERROR | 最近的错误处 |
E_WARNING | 最近的警告处 |
E_PARSE | 分析语法的潜在问题 |
E_ NOTICE | 发生不寻常但不一定错误 |
PHP_EOL | 系统换行符,Windows是(\r\n),Linux是(/n),MAC是(\r) |
DIRECTORY_SEPARATOR | 系统目录分隔符,Windows是反斜线(\),Linux是斜线(/) |
PATH_SEPARATOR | 多路径间分隔符,Windows是反斜线(;),Linux是斜线(:) |
2.魔术常量
魔术常量 | 常量值 |
---|---|
__FILE__ | 返回文件的完整路径和文件名 |
__LINE__ | 返回文件中的当前行号 |
__DIR__ | 文件当前路径,等价于 dirname(__FILE__ ) |
__FUNCTUON__ | 当前函数名 |
__CLASS__ | 当前类名 |
__METHOD__ | 当前对象的方法名 |
__TRAIT__ | Trait 的名字 |
__NAMESPACE__ | 当前命名空间的名称 |
根据操作系统决定目录分隔符
windows 为 \ Linux为 /
注:
1.单引号定义的字符串中的单引号需要转义字符
/'
2.单引号定义的字符串中,$
原样输出
3.双引号定义的字符串中,$
是变量的开始,且需要使用{}
将变量括住,否则不知其何时结束识别不出
4.单双引号定义的字符串中,特殊字符均需要转义
三、PHP 变量的范围
局部变量:函数内部定义的变量,作用范围是本函数
全局变量:在函数外部定义的变量,作用于PHP整个脚本
静态变量:函数内部用 static 定义,,仅在函数初次执行时被初始化
在函数中使用全局变量:
1.通过传参
2.global 声明为全局变量
3. 常量 的作用域是 超全局 的define("a","90");