php基础知识点
PHP引用变量
概念:在PHP中意味着用不同的名字访问同一个变量内容
- 工作原理:COW(copy on write)
<?php
/**
* PHP引用变量
*/
//$a在没有修改情况下和$b指向一个内存空间
$a = range(0, 1000);
echo memory_get_usage() . '<br>';
$b = $a;
echo memory_get_usage() . '<br>';
//$a被修改指向另一个内存空间
$a = range(0, 1000);
echo memory_get_usage() . '<br>';
//输出
//203080
//203128
//203160
- unset只会取消引用,不会销毁空间
- 对象本身就是引用传递
<?php
/**
* PHP引用变量
*/
class Person
{
public $age = null;
}
$a = new Person();
$b = $a;
echo memory_get_usage() . '<br>';
$a->age = 2;
echo memory_get_usage() . '<br>';
/**
* 输出
* 119904
* 119904
*/
PHP常量及数据类型
-
字符串
单引号:- 单引号不能解析变量
- 单引号不能转义字符,只能解析单引号和反斜线本身
- 变量和变量,变量和字符串,字符串和字符串可以用.连接
双引号:
- 能解析变量
- 能转义字符
- 变量和变量,变量和字符串,字符串和字符串可以用.连接
区别:单引号效率高于双引号
Heredoc(类似双引号):
$str = <<<DOC
abcd
DOC;
- 浮类型不能用于比较运算
$a = 0.1;
$b = 0.7;
if($a + $b == 0.8){} //false
- FALSE 7种情况
0, 0.0, '', '0', false, array(), NULL
- 超全局数组
- NULL 3种情况
- 直接赋值NULL
- 未定义变量
- unset变量
- 常量
const 更快的语言结构,可用于类变量定义
define
#预定义常量
__FILE__, __LINE__, __DIR__, __FUNCTION__,
__CLASS__, __TRAIT__, __METHOD__, __NAMESPACE__
运算符
重点:递增、递减;短路效果;逻辑优先级
-
错误控制符@
放在表达式前面,忽略程序产生的错误 -
优先级
递增/减 > ! > 算术运算符 > 大小比较 > 相等 > 引用 > 位运算^ >
位运算| > 与 > 或 > 三木运算符 > 赋值运算符 > and > xor > or -
短路作用
/**
* 运算符短路效果
*/
$a = false;
$b = 1;
$a = true || $b = 3;
var_dump($a); //true
var_dump($b); //1
$b = false && $a = 1;
var_dump($a); //true
var_dump($b); //false