Blogger Information
Blog 26
fans 1
comment 1
visits 19649
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
《PHP数据类型转换与检测、变量常量的使用》
杨凡的博客
Original
576 people have browsed it

数据类型的转换与检测技术

1、数据类型的转换

  1. <?php
  2. //类型转换
  3. //1.临时转换:用户参与操作
  4. $n = 888;
  5. var_dump($n,(string)$n,(float)$n);
  6. echo '<br>';
  7. var_dump((array)$n,((array)$n)[0]);
  8. echo '<br>';
  9. $str = 'php';
  10. var_dump((object)$str,((object)$str)->scalar);
  11. echo '<br>';
  12. //2.自动转换:系统自动
  13. echo 222 + '333';
  14. echo '<br>';
  15. echo 222 + 'abc12';
  16. echo '<br>';
  17. echo 222 + '12abc';
  18. echo '<br>';
  19. //3.强制转换:永久转换 只针对变量,字面量无效
  20. $age = 30;
  21. echo gettype($age),'<br>';
  22. settype($age,'string');//永久转换
  23. echo gettype($age),'<br>';

总结:
1. 数据类型转换分为:临时转换、自动转换、强制转换
2. 自动转换时如整数与字符串相加默认转换字符串为整数,如字符串包含数字和字母,字母在前,默认为0数据,忽略后面的数字;如数字在前,转换字符串数字忽略后面字母进行相加
3. 临时转换后,访问原来的变量会恢复原变量的数据类型;永久转换后,原来的变量类型改为转换后的变量类型

2、数据类型的检测

  1. <?php
  2. //类型检测
  3. function sum($a,$b){
  4. //is_numeric():检查参数是否是数值或数值型的字符串
  5. if (is_numeric($a) && is_numeric($b)){
  6. printf('%d+%d = %d<br>',$a,$b,($a+$b));
  7. }else{
  8. echo '参数类型错误<br>';
  9. }
  10. }
  11. sum(1,'23');
  12. sum(1,'ab');
  13. //严格类型检测
  14. function sum22($a,$b){
  15. //is_numeric():检查参数是否是数值或数值型的字符串
  16. if (is_int($a) && is_int($b)){
  17. printf('%d+%d = %d<br>',$a,$b,($a+$b));
  18. }else{
  19. echo '参数类型错误<br>';
  20. }
  21. }
  22. sum22(1,'23');
  23. sum22(1,12.78);
  24. //参数类型限定可以自动识别数值货数值型的字符串is_numeric()
  25. function sum44(float $a,float $b) : string {
  26. return $a.'+'.$b.'='.($a+$b);
  27. }
  28. echo sum44(1,'25').'<br>';
  29. echo sum44(1,12.78).'<br>';

检测方式 函数
标量 is_int(),is_string(),is_bool(),is_scalar()…
复合 is_array(),is_object()
特殊 is_null(),is_resource()

变量声明方式与使用

变量

  • 仅允许使用: 英文字母(a-z,A-Z),数字(0-9),下划线(_)或他们的组合
  • 不允许使用数字开头
  • 必须使用”$”美元符为前缀
  • 严格区分大小写
  • 驼峰命名法
  1. <?php
  2. $userName = '百万弟弟';
  3. $username = '在PHP中文网学习PHP';
  4. echo $userName,',',$username,'<br>';
  5. //1、驼峰式命名:$yangFan,变量,对象的属性和方法,getUser()
  6. //2、蛇形:get_data(),函数
  7. //3、帕斯卡:UserName,类,首字母大写,与驼峰式很像,所以也叫大驼峰
  8. //4、全大写:常量
  9. function hello($name){
  10. return 'hello'.$name;
  11. }
  12. echo hello('PHP中文网'),'<br>';
  13. echo HELLO('PHP中文网'),'<br>';
  14. echo HellO('PHP中文网'),'<br>';
  15. //值传递
  16. $age = 38;
  17. $age1 = $age;
  18. printf('age = %d,age1 = %d<br>',$age,$age1);
  19. $age = 30;
  20. printf('age = %d,age1 = %d<br>',$age,$age1);
  21. //引用传递 引用赋值 就是给原始变量起了个别名
  22. $sex = 111;
  23. $sex1 =& $sex;
  24. printf('sex = %d,sex1 = %d<br>',$sex,$sex1);
  25. $sex = 222;
  26. printf('sex = %d,sex1 = %d<br>',$sex,$sex1);
  27. //预定义变量 超全局变量:数组 任何地方都可以使用 不受作用域限制
  28. // $GLOBALS: 引用全局作用域中可用的全部变量
  29. // $_SERVER: 服务器和执行环境信息
  30. // $_GET :通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组
  31. // $_POST:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
  32. // $_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组
  33. // $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
  34. // $_SESSION:当前脚本可用 SESSION 变量的数组
  35. // $_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
  36. // $_ENV: 通过环境方式传递给当前脚本的变量的数组
  37. echo '<hr>';
  38. $name = '百万弟弟';
  39. $age = 18;
  40. printf('name = %s,age = %s<br>',$GLOBALS['name'],$GLOBALS['age']);
  41. echo 'ip:'.$_SERVER['REMOTE_ADDR'].'<br>';
  42. echo '浏览器:'.$_SERVER['HTTP_USER_AGENT'].'<br>';
  43. echo '脚本绝对路径:'.$_SERVER['SCRIPT_FILENAME'].'<br>';
  44. echo '脚本相对路径:'.$_SERVER['SCRIPT_NAME'].'<br>';
  45. echo '当前脚本名称:'.$_SERVER['PHP_SELF'].'<br>';
  46. //http://127.0.0.1/PHP14/20210126/demo3.php?name=yangfan&age=18
  47. echo '查询字符串:'.$_SERVER['QUERY_STRING'].'<br>';
  48. //http://127.0.0.1/PHP14/20210126/demo3.php/name/age/yangfan
  49. echo 'PATH_INFO='.$_SERVER['PATH_INFO'].'<br>';
  50. echo 'URI:'.$_SERVER['REQUEST_URI'].'<br>';
  51. echo $_GET['name'];

常量

  1. <?php
  2. //常量 是固定的值 创建不可更新和删除 const编译阶段 define运行阶段
  3. //1、函数创建
  4. define('NAME','百万弟弟');
  5. //2、关键字
  6. const AGE= 18;
  7. printf('名字:%s,年龄:%s',NAME,AGE);

总结:
1.常量是固定的值,一单创建不可更新和删除
2. 常量需要全部大写,多个单词下划线连接,可全局访问
3. const编译阶段使用,define运行阶段使用
4. const只支持字面量,不支持表达式;define可以

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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!