博客列表 >PHP的变量

PHP的变量

浪子修罗记录有趣的事
浪子修罗记录有趣的事原创
2020年07月13日 16:56:27713浏览

php程序由哪几部分组成

  1. // 代码
  2. function sum(int $a, int $b) {
  3. // 返回结果给调用者
  4. return "{$a} + {$b} = " . ($a + $b);
  5. }
  6. // 执行,将执行结果打印输出
  7. echo sum(10, 20);

结果打印输出
10 + 20 = 30

php打印输出

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

结果

  1. leon@dachishui.com
  2. leon@dachishui.com
  3. leon@dachishui.com1
  4. string
  5. string(18) "leon@dachishui.com" int(123)
  6. 'leon@dachishui.com'

变量

  1. // 变量的命名
  2. // 变量是临时存储数据的容器
  3. // 变量是实现数据复用的手段
  4. $username = 'admin';
  5. $userName = 'leon';
  6. // 变量区分大小写
  7. echo $username,'<br>', $userName, '<hr>';
  8. // 函数是不区分大小写
  9. echo strtoupper($userName);
  10. echo STRTOUPPER($userName);
  11. // 变量名必须以"$"开始
  12. // hello = 'php';
  13. // 变量标识符不允许用数字开始
  14. // $123aaa = 'china';
  15. // 变量允许使用下划线开始
  16. $_email = 'leon@dachishui.com';
  17. // 变量名不允许使用特殊字符,@
  18. // $user@id = 'abc';
  19. // 变量标识符: $开始,仅允许字母,下划线和数字,且不允许使用数字开始
  20. $我的邮箱 = 'leon@dachishui.com';
  21. // 中文可以用作变量名,但不推荐
  22. echo $我的邮箱;
  23. // 无意义, 不要用,变量名要望文生义
  24. $aaa = 'dachishui.com';
  25. $_ = 123;

结果

  1. admin
  2. leon
  3. LEONLEONleon@dachishui.com

变量的动态

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

结果

  1. int(100)
  2. string(13) "dachishui.com"

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

  1. // 1. 值传递,也是默认的方式
  2. $price1 = 99;
  3. $price2 = $price1;
  4. // 更新price2
  5. $price2 = 199;
  6. // 查看price1
  7. echo 'price1 = ' . $price1 . '<hr>';
  8. // 2. 引用传递
  9. $price1 = 99;
  10. // 在等号的右边/右值前面加上&(取地址符)
  11. // 当前$price2中保存的并不是99, 而是$price1变量在内存中的地址, [0xabcd1234] = 99
  12. $price2 = &$price1;
  13. // 更新price2
  14. $price2 = 199;
  15. // 查看price1, 会发现print1与price2同步更新了
  16. echo 'price1 = ' . $price1 . '<hr>';

结果

  1. price1 = 99
  2. price1 = 199

可变变量

  1. $var = 'email';
  2. // $email = 'leon@dachishui.com';
  3. // 变量名可以动态的创建
  4. $$var = 'leon@dachishui.com';
  5. echo $email;

结果

  1. leon@dachishui.com

变量的检测与删除

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

结果

  1. 没有定义该变量
  2. string(0) ""

数据类型(基本类型, 复合类型, 特殊类型)

  1. // 1. 基本类型
  2. // 字符串
  3. $name = '平板';
  4. // 数值
  5. $price = 5980;
  6. // 布尔
  7. $is5G = false;
  8. // 2. 复合类型, 对象,数组
  9. // 对象
  10. $obj = new stdClass;
  11. // 对象是属性和方法的无序集合
  12. $obj->name = 'leon';
  13. $obj->age = 40;
  14. echo $obj->name, '<hr>';
  15. // 数组
  16. $arr = ['笔记本', 6500, 'lenovo'];
  17. // print_r()以人性化的方式打印变量,true表示不直接打印,而返回
  18. // 返回就是一定要有一个接收者
  19. $str = print_r($arr, true);
  20. echo '<pre>'.$str.'</pre>';
  21. // 基本类型: 标量, 单值
  22. // 复合类型: 多值,
  23. // 3. 特殊类型
  24. // NULL
  25. $num = null;
  26. var_dump($num);
  27. // $f就是文件资源类型
  28. $f = fopen('demo2.php', 'r');
  29. var_dump($f);
  30. echo gettype($f);

结果

  1. leon
  2. Array
  3. (
  4. [0] => 笔记本
  5. [1] => 6500
  6. [2] => lenovo
  7. )
  8. NULL resource(3) of type (stream) resource

变量的类型转换

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

结果

  1. 20
  2. 15 hellointeger
  3. string
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议