批改状态:合格
老师批语:非常好, 打好基础, 加油
| 转换方式 | 函数 |
|---|---|
| 临时转换 | (int),(string),(array),(object)… |
| 自动转换 | 根据操作符对操作数的类型要求进行 |
| 强制转换 | settype() |
//1. 临时转换$uid = 25;var_dump($uid,(string)$uid,(float)$uid);// int(25) string(2) "25" float(25)// 2. 系统自动转换// 1) "+","-" 要求参与计算的数据都是数值类型,如果不是,就是会触发自动转换$foo = '100pages';@$foo += 200;var_dump($foo);// int(300)$foo += 12.3;var_dump($foo);// float(312.3)@$res = null + '10 kg rice';var_dump($res);// int(10)// 2) . 字符串拼接符echo 'how are you' . 100 . '<br>';// 3) 布尔类型转换@var_dump($email);//null//null===>falseif(!@$email){echo 'email不存在';}/*** 以上类型转换都无法改变被转换变量本身的类型,* 而是通过转换, 将得到的新类型的数据赋给了新的变量,* 原变量的类型与值保持不变*/$p = $_GET["page"];echo gettype($p);// string// 3.类型永久转换settype($p,'integer');echo gettype($p);// integer
/*** 1. 传值赋值: 将源变量($a)的值复制出来一份新的值内存空间地址给另一个变量($b), 修改两个变量的值 互不影响*/$a = 45;$b = $a;printf('$a的值为%d,$b的值为%d<br>',$a,$b);// $a的值为45,$b的值为45$a = 450;printf('$a的值为%d,$b的值为%d<br>',$a,$b);// $a的值为450,$b的值为45/*** 2. 引用赋值 &地址引用符* 新的变量$price2 引用/指向了原始变量, 互相影响, 没有复制操作,因而引用赋值更加快*/$price1 = 25;$price2 = &$price1;printf('$price1的值为%d,$price2的值为%d<br>',$price1,$price2);// $price1的值为25,$price2的值为25$price1 = 250;printf('$price1的值为%d,$price2的值为%d<br>',$price1,$price2);// $price1的值为250,$price2的值为250$foo = 35;$bar = &$foo;unset($foo);//仅仅是将$foo,$bar互相取消关联var_dump($bar);//int(35)
// 变量的作用域问题function demo(){//$a,$b 定义在函数内部, 属于局部变量, 只在函数内部访问有效$a = 100;$b = 200;echo ($a+$b);}demo();// echo $a;非法访问,在函数外部不能访问到布局变量// 全局变量 无法在函数内部直接调用$one = 100;$two = 200;function test(){// 1. globalglobal $one,$two;echo '运算结果是: '. ($one+$two);// 2. $GLOBALS超全局变量echo '运算结果是: '. ($GLOBALS['one']+$GLOBALS['two']);}test();
__LINE__:文件中的当前的行数。__FILE__:当前文件所在的文件位置。__DIR__:当前文件所在的目录。__FUNCTION__:当前函数的名字。__CLASS__:当前类的名字。__METHOD__:类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)和FUNCTION一样。__NAMESPACE__:当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号