Blogger Information
Blog 12
fans 1
comment 0
visits 9541
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP的变量
浪子修罗记录有趣的事
Original
711 people have browsed it

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
Correcting teacher:GuanhuiGuanhui

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