Correcting teacher:灭绝师太
Correction status:qualified
Teacher's comments:
(a-z,A-Z)
,数字(0-9)
,下划线(\_)
或他们的组合$
“美元符为前缀严格区分
大小写大写字母
表示转换方式 | 函数 |
---|---|
临时转换 | (int),(string),(array),(object)… |
自动转换 | 根据操作符对操作数的类型要求进行 |
强制转换 | settype() |
大家可以看到$str没有转换之前是string 字符串类型,下面我们用(int)临时转换为数值型
大家可以看到现在进行类型转换之后$str变成了int数值型,和$int一模一样的类型值,但是这种类型转换不是永久的!而是临时的!
类型没有转换之前是字符串 15岁
用@符号抑制报错浏览器将会自动转换类型,类型转换之后15岁变成65,自动和数值类型相加,舍去了后面的字符串文字
$arr 没有转换类型之前是一个数组Array
强制类型转换为string,输出的类型就是字符串string
<?php
//定义全局变量
$str = '15';
$int = 30;
//使用(int) 临时把字符串转换为数值
echo (int)$str + $int .'<br>';
var_dump((int)$str,$int);
echo "<hr>";
//自动转换类型
$age = "15岁";
//@符 强制解除报错,会让浏览器自动解析
@$age += 50;
echo $age;
echo "<hr>";
//settype()强制类型转换,把一个数组类型转换为string类型
$arr = ['1','2','3'];
settype($arr,'string');
echo gettype($arr);
?>
变量a等于50 变量b等于变量a,输出变量b也等于50,这叫变量值传递,我们再看看更改变量a的值,变量b会不会改变属性
我们可以看到,变量a的值改变成100,变量b的值没有变化还是50,变量值传递等于每个人都有相同的值,重新更改赋值变量并不能改变被赋值本身的值,如果在下面在输出一个 变量b等于a呢?
我们可以看到,如果在下面在输出一个 变量b等于a,则变量b等于变量a最新的那个值,也就是说浏览器是从上到下开始解析的,这一点非常重要
变量值引用,用一个&符号放在要引用的变量前面,接下来我们改变一下$c的值,看看$a会不会受影响
大家可以看到,我们在这里改变了$c的值,$a的值也会收到影响,说明变量值传递和变量值引用是不一样的!
方法 | 含义 |
---|---|
isset() | 用来检测变量是否被定义,若变量存在并且值不为null才返回true 否则返回false |
empty() | 检验变量是否为空,为空返回true 不为空 返回false |
变量有值不为空,返回false
变量没有值返回true
变量值不存在返回false
变量值存在返回true
<?php
//值变量传递
//变量a等于50 变量b等于变量a
$a = 50 ;
$b = $a ;
$a = 100 ;
$b = $a ;
echo $b;
echo '<hr>';
//变量值引用 用&符号
$c = 50;
$a = &$c;
//改变一下$c的值
$c = 100;
echo $a ;
echo "<hr>";
// $c = null;
//empty 检验变量是否为空,为空返回true 不为空 返回false
var_dump(empty($c));
echo "<hr>";
//isset 用来检测变量是否被定义,若变量存在并且值不为null才返回true 否则返回false
var_dump(isset($c));
名称 | 含义 |
---|---|
全局变量 | 全局变量,声明全局外部的变量,不在函数里面的变量,函数内部无法直接访问全局变量,必须加上global 才访问全局变量 |
局部变量 | 局部变量,声明在函数里面的变量 |
全局变量,函数内部无法直接访问外面的全局变量,要加上global才能访问到
用global访问外面的全局变量,多个值用,号隔开
局部变量声明在函数内部,外部无法访问到函数内部声明的变量
系统预定义魔术常量 | 含义 |
---|---|
__FILE__ | 默认常量,PHP程序文件名 |
__LINE__ | 默认常量,PHP程序行数 |
__FILE__默认常量,PHP程序文件名也就是当前文件所在的目录
__LINE__默认常量,PHP程序行数
<?php
//变量作用域:全局变量声明全局外部的变量
//这是全局变量
// $a = 100;
// $b = 20;
// function Sum(){
// global 访问外面的全局变量
// global $a ,$b;
// 如果没有global 则不能直接访问外面的全局变量
// return $a * $b ;
// }
// echo Sum();
//局部变量:声明在函数内部
function Sum(){
$a = 50 ;
$b = 30 ;
return $a / $b ;
}
echo Sum();
echo "<hr>";
//声明在函数内部的变量无法访问
echo $a ;
echo "<hr>";
//系统预定义魔术变量
// echo __FILE__; //当前文件所在的目录
var_dump( __LINE__);