博客列表 >细说PHP中的变量

细说PHP中的变量

JKY辉哥
JKY辉哥原创
2020年07月12日 14:05:55876浏览

细说PHP中的变量和数据类型

1. PHP中变量基础学习

  • 定义一个求和函数demo1

  1. // php程序由哪几部分组成?
  2. // 代码
  3. function sum(int $a,int $b){
  4. // 返回结果给调用者
  5. return "$a + $b =".($a+$b);
  6. }
  7. // 执行,将执行结果打印输出
  8. echo sum(30,40);

  • php打印输出demo2

  1. <?php
  2. // php打印输出
  3. $email = 'admin@php.cn';
  4. // echo 回显,效率最高,没有返回值
  5. echo $email, '<br>';
  6. echo '<span style="color:red;">'.$email.'</span>';
  7. echo '<hr>';
  8. // print与echo 区别
  9. // 1. echo 可以打印多个变量,且没有返回值
  10. // 2. print 仅能打印单个变量, 返回1
  11. echo print $email;
  12. echo '<hr>';
  13. // 查看变量类型,只能返回类型
  14. echo gettype($email)."<br>";
  15. // var_dump()想获取到变量的完整的信息
  16. var_dump($email);
  17. echo '<br/>';
  18. var_dump(12343);
  19. echo '<hr>';
  20. // var_export(): 返回一个变量的字符串表示(源代码)
  21. var_export($email);

运行结果截图

  • 变量的命名demo3

  1. <?php
  2. // 变量的命名
  3. // 变量是临时存储数据的容器
  4. // 变量是实现数据复用的手段
  5. $username = "admin";
  6. $userName = "peter";
  7. // 1. 变量区分大小写
  8. echo "$username=".$username."<br> UserName=".$userName;
  9. echo '<br>';
  10. // 2. 函数是不区分大小写
  11. echo strtoupper($userName);
  12. echo '<br>';
  13. echo STRTOUPPER($userName);
  14. // 3. 变量名必须以"$"开始
  15. echo '<br>';
  16. // $hello = 'php';
  17. // echo $hello;
  18. //4.变量标识符不允许用数字开始
  19. // 如下例,会报错
  20. // $123a = "phpcn";
  21. // echo $123a;
  22. // 5.变量允许使用下划线开始
  23. $_email = 'qbh@qq.com';
  24. echo $_email;
  25. //6. 变量名不允许使用特殊字符,@
  26. // $aad@c = "phpcn";
  27. // echo $aad@c;
  28. echo '<br>';
  29. //7.变量标识符: $开始,仅允许字母,下划线和数字,且不允许使用数字开始
  30. // 中文可以用作变量名,但不推荐
  31. $我的邮箱 = "php@php.cn";
  32. echo $我的邮箱;
  33. // 无意义, 不要用,变量名要望文生义
  34. $aaa = "phpcc";
  35. $_ = 1234;

运行结果截图

  • 变量的动态demo4

  1. <?php
  2. // 变量的动态: 是指变量的类型可以随值而变化
  3. $var = 100;
  4. var_dump($var);
  5. echo "<hr>";
  6. $var = 'php.cn';
  7. var_dump($var);

运行结果截图
demo9

  • 变量的有值传递与引用传递二种方式赋值demo5

  1. // 变量的有值传递与引用传递二种方式赋值
  2. // 1. 值传递,也是默认的方式
  3. $price1 = 100;
  4. $price2 = $price1;
  5. echo $price2;
  6. echo "<br>";
  7. // 更新price2
  8. $price2 = 1992;
  9. // 查看price1
  10. echo "price1=".$price1."<hr>";
  11. // 总结,值传递时,变量相互独立,不受影响
  12. // 2. 引用传递
  13. $price1 = 100;
  14. // 在等号的右边/右值前面加上&(取地址符)
  15. // 当前$price2中保存的并不是99, 而是$price1变量在内存中的地址, [0xabcd1234] = 99
  16. $price2 = &$price1;
  17. echo $price2;
  18. echo "<br>";
  19. // 更新price2
  20. $price2 = 199;
  21. // 查看price1, 会发现print1与price2同步更新了
  22. echo 'price1 = ' . $price1 . '<hr>';

运行结果截图

  • 可变变量demo6

  1. <?php
  2. // 可变变量
  3. $var = 'email';
  4. echo "<br>";
  5. // $email = 'admin@php.cn';
  6. // 变量名可以动态的创建,给变量加一个$符,可以动态创建变量名
  7. $$var = 'admin@php.cn';
  8. echo $email;

运行结果截图

  • 变量的检测与删除demo7

  1. <?php
  2. // 变量的检测与删除
  3. // 打开所有的报错
  4. error_reporting(E_ALL);
  5. // echo $username;
  6. // 变量检测
  7. $username = 'Joe';
  8. $username = null;
  9. // isset():如果该变量存在且值不为null才是true
  10. if(isset($username)) echo $username;
  11. else echo '没有定义该变量'.'<br>';
  12. // unset():删除变量, 没有返回值
  13. // unset($username);
  14. // echo $username;
  15. $var = '';
  16. if(empty($var))
  17. var_dump($var).'<br>';

运行结果截图

  • 数据类型demo8

  1. <?php
  2. // 数据类型
  3. // 基本类型, 复合类型, 特殊类型
  4. // 1. 基本类型
  5. // 1.1 字符串
  6. $name = '手机';
  7. echo $name;
  8. echo '<br>';
  9. // 1.2 数值
  10. $price = 2980;
  11. echo $price;
  12. echo '<br>';
  13. // 1.3 布尔
  14. $is5G = false;
  15. // echo $is5G;
  16. var_dump($is5G);
  17. echo '<br>';
  18. // 2. 复合类型, 对象,数组
  19. // 2.1 对象
  20. $obj = new stdClass;
  21. // 对象是属性和方法的无序集合
  22. $obj->name = "peter zhu";
  23. $obj->age = 35;
  24. echo $obj->name;
  25. echo '<br>';
  26. echo $obj->age.'<hr>';
  27. // 2.2数组
  28. $arr = ['电脑',5000,'Dell'];
  29. // print_r()以人性化的方式打印变量,true表示不直接打印,而返回
  30. // 返回就是一定要有一个接收者
  31. // 打印数组方式1
  32. print_r($arr);
  33. // 打印数组方式2
  34. $str = print_r($arr,true);
  35. echo '<pre>'.$str.'</pre>';
  36. // 基本类型: 标量, 单值
  37. // 复合类型: 多值,
  38. // 3. 特殊类型
  39. //NULL
  40. $null = NULL;
  41. var_dump($null);
  42. echo '<br>';
  43. // $f就是文件资源类型
  44. $f = fopen('demo2.php','r');
  45. var_dump($f);
  46. echo '<br>';
  47. echo gettype($f);

运行结果截图

  • 变量的类型转换demo9

  1. <?php
  2. // 变量的类型转换
  3. // 自动转换: 是由php系统偷偷进行的,不需要用户主动参与
  4. $a = null;
  5. $b = true;
  6. $c = false;
  7. $d = 'g5';
  8. $ds = "5g";
  9. $e = 'php';
  10. $f = 15;
  11. // null在算术运算中自动转为0
  12. echo $a + 10, '<br>';
  13. // true在算术运算中转为1
  14. echo $b + 10, '<br>';
  15. // echo $d + 10, '<br>';
  16. // echo $ds + 10, '<br>';
  17. // echo $e + 10, '<br>';
  18. // . : 字符串连接操作
  19. echo $e . $f, '<br>';
  20. echo '<hr>';
  21. // 强制转换
  22. // 如果不想看到警告,通过强制转换解决
  23. // echo (int)$e + 10, '<br>';
  24. // 强制转换建议用intval,不建议使用int
  25. echo intval($e) + 20, '<br>';
  26. echo strval($f) . ' hello'.'<br>';
  27. echo gettype($f);
  28. echo '<hr>';
  29. // 永久转换
  30. settype($f,'string');
  31. echo gettype($f);

运行结果截图

2.总结

  1. 1.echo 回显,效率最高,没有返回值
  2. 2.var_dump()想获取到变量的完整的信息
  3. 3.变量是临时存储数据的容器,变量是临时存储数据的容器
  4. 4.变量区分大小写,函数是不区分大小写
  5. 5.变量命名:变量标识符: $开始,仅允许字母,下划线和数字,且不允许使用数字开始
  6. 6.变量的有值传递与引用传递二种方式赋值
  7. 7.变量的检测与删除方法: unset()删除变量,isset()是空才为true,empty()判断是否为空
  8. 8.变量的类型转换:. : 字符串连接操作;强制转换建议用intval,不建议使用int;永久转换 settype($f,'string');
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议