Blogger Information
Blog 18
fans 1
comment 0
visits 12220
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php 的变量与常量----0426
木樨
Original
515 people have browsed it

1. 变量的类型转换方式?

转换方式 函数
临时转换 (int),(string),(array),(object)…
自动转换 根据操作符对操作数的类型要求进行
强制转换 settype()
  1. //1. 临时转换
  2. $uid = 25;
  3. var_dump($uid,(string)$uid,(float)$uid);// int(25) string(2) "25" float(25)
  4. // 2. 系统自动转换
  5. // 1) "+","-" 要求参与计算的数据都是数值类型,如果不是,就是会触发自动转换
  6. $foo = '100pages';
  7. @$foo += 200;
  8. var_dump($foo);// int(300)
  9. $foo += 12.3;
  10. var_dump($foo);// float(312.3)
  11. @$res = null + '10 kg rice';
  12. var_dump($res);// int(10)
  13. // 2) . 字符串拼接符
  14. echo 'how are you' . 100 . '<br>';
  15. // 3) 布尔类型转换
  16. @var_dump($email);//null
  17. //null===>false
  18. if(!@$email)
  19. {
  20. echo 'email不存在';
  21. }
  22. /**
  23. * 以上类型转换都无法改变被转换变量本身的类型,
  24. * 而是通过转换, 将得到的新类型的数据赋给了新的变量,
  25. * 原变量的类型与值保持不变
  26. */
  27. $p = $_GET["page"];
  28. echo gettype($p);// string
  29. // 3.类型永久转换
  30. settype($p,'integer');
  31. echo gettype($p);// integer

2. 变量值传递与值引用的区别?

  • 传值赋值: 将源变量($a)的值复制出来一份新的值内存空间地址给另一个变量($b), 修改两个变量的值 互不影响
  • 引用赋值 &地址引用符: 新的变量 $price2 引用/指向了原始变量, 互相影响, 没有复制操作,因而引用赋值更加快
  1. /**
  2. * 1. 传值赋值: 将源变量($a)的值复制出来一份新的值内存空间地址给另一个变量($b), 修改两个变量的值 互不影响
  3. */
  4. $a = 45;
  5. $b = $a;
  6. printf('$a的值为%d,$b的值为%d<br>',$a,$b);// $a的值为45,$b的值为45
  7. $a = 450;
  8. printf('$a的值为%d,$b的值为%d<br>',$a,$b);// $a的值为450,$b的值为45
  9. /**
  10. * 2. 引用赋值 &地址引用符
  11. * 新的变量$price2 引用/指向了原始变量, 互相影响, 没有复制操作,因而引用赋值更加快
  12. */
  13. $price1 = 25;
  14. $price2 = &$price1;
  15. printf('$price1的值为%d,$price2的值为%d<br>',$price1,$price2);
  16. // $price1的值为25,$price2的值为25
  17. $price1 = 250;
  18. printf('$price1的值为%d,$price2的值为%d<br>',$price1,$price2);
  19. // $price1的值为250,$price2的值为250
  20. $foo = 35;
  21. $bar = &$foo;
  22. unset($foo);//仅仅是将$foo,$bar互相取消关联
  23. var_dump($bar);//int(35)

3. 变量的作用域?

  • 局部变量:定义在函数中的变量,只能在函数中访问,在函数外无法访问。
  • 全局变量:无法在函数内直接调用,需要使用关键字 global 或者 $GLOBALS超全局变量,才能在函数中访问。
  1. // 变量的作用域问题
  2. function demo(){
  3. //$a,$b 定义在函数内部, 属于局部变量, 只在函数内部访问有效
  4. $a = 100;
  5. $b = 200;
  6. echo ($a+$b);
  7. }
  8. demo();
  9. // echo $a;非法访问,在函数外部不能访问到布局变量
  10. // 全局变量 无法在函数内部直接调用
  11. $one = 100;
  12. $two = 200;
  13. function test(){
  14. // 1. global
  15. global $one,$two;
  16. echo '运算结果是: '. ($one+$two);
  17. // 2. $GLOBALS超全局变量
  18. echo '运算结果是: '. ($GLOBALS['one']+$GLOBALS['two']);
  19. }
  20. test();

4.php中魔术常量有哪些?

  • __LINE__:文件中的当前的行数。
  • __FILE__:当前文件所在的文件位置。
  • __DIR__:当前文件所在的目录。
  • __FUNCTION__:当前函数的名字。
  • __CLASS__:当前类的名字。
  • __METHOD__:类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)和FUNCTION一样。
  • __NAMESPACE__:当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
Correcting teacher:灭绝师太灭绝师太

Correction status:qualified

Teacher's comments:非常好, 打好基础, 加油
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post