- 变量的类型转换方式
php有8种变量类型:- $int = 22 标量类型
- $float = 52.25 标量类型
- $bool = true 标量类型
- $str = ‘hello uniapp’ 标量类型
- array 复合类型
- object 复合类型
- resource 特殊类型
- null 特殊类型
1). 强制类型转换(临时)
在要转换的变量前写上变量类型(变量类型要加上小括号),这样就会变成相应的类型.
<?php
$page = (int)$_GET[‘page’];
var_dump($page);
page为整型
$uid = 25;
var_dump($uid,(string)$uid,(float)$uid);
var_dump((array)$uid,((array)$uid)[0]);
2) 系统自动转换
要求参与计算的数据都是数值类型,如果不是,就是会触发自动转换
@$res = 5 +’10.36 kg rice’;
var_dump($res);//float(15.36)
字符串拼接符
echo ‘how are you’ . 100 . ‘<br>‘;布尔类型转换
@var_dump($email);//null
//null===>false
if(!@$email)
{
echo ‘email不存在’;
}
3) 类型永久转换
settype($p,’integer’);
echo gettype($p);//integer
- 变量值传递与值引用的区别
1) 变量赋值
<?php
$a = 45;
$b = $a
{$a++};
echo $a;
echo $b;
?>
输出的内容是46。 b是1。
2). 引用赋值/地址引用符
新的变量$price2 引用/指向了原始变量, 互相影响, 没有复制操作,因而引用赋值更加快
$foo = 35;
$bar = &$foo;
unset($foo);//仅仅是将$foo,$bar互相取消关联
var_dump($bar);//int(35)
3) 变量的检测与释放
isset()用来检测变量是否被定义,若变量存在并且值不为null才返回true 否则返回false
<?php
teacher:’Chloe’;
$teacher = null;
var_dump(isset($teacher));
if(!isset($username))
{
echo ‘变量未被检测到’;
}
?>
输出的内容是false.
3.php中魔术常量
常量:
- 固定的值(圆周率), 常量不能重新被定义 或者取消定义
- 常量的命名前不能加 $
- 常量推荐全部大写,多个单词之间用下划线连接
- 常量, 类, 接口,函数 全局成员, 变量不是全局成员 受作用域的限制
php魔术常量 LINE DIR FUNCTION METHOD NAMESPACE
<?php
function func()
{
echo FUNCTION;
}
func();
echo ‘当前行数’.LINE;
class Person
{
public function walk()
{
echo METHOD;
}
}
?>
输出的内容是: func当前行数8