博客列表 >PHP之变量

PHP之变量

邱世家的博客
邱世家的博客原创
2020年07月03日 17:19:30656浏览

PHP基本常识:

NO 释义
<?php 起始标签
?> 结束标签
; 语句分隔符
// 单行注释
echo 可以打印多个变量,且没有返回值
print 仅能打印一个变量,返回1
print_r( ,true/false) 以人性化的方式打印变量,第二个值为true不打印,返回给调用者
gettype() 获取变量类型
var_dump() 获取变量完整信息
var_export() 返回php源代码
error_reporting(E_ALL) 打开所有报错
isset($变量名) 变量检测。该变量存在且值不为null,才是true(才打印)
unset($变量名); 销毁变量,没有返回值
  1. <?php
  2. //声明变量
  3. $username = 'qj';
  4. $userName = 'QQQ';
  5. // echo,可以打印多个变量,支持html标签和自变量,无返回值
  6. echo $username, $userName,'<br>';
  7. // print 只能打印一个变量 返回1
  8. echo print $username;
  9. echo '<br>';
  10. // gettupe():获取变量类型,当前是string
  11. echo gettype($username),'<hr>';
  12. //var_dump():获取变量完整信息
  13. var_dump($username);
  14. echo '<hr>';
  15. //var_export:返回的是php的源代码
  16. var_export($username);

变量命名规则:

  • 必须以$开始,且开头只能用下划线(_)或者英文字母。
  • 变量名中不允许使用特殊字符,可以用中文 但是不能用
  • 变量名区分大小写(函数并不区分),要望文生义。
    1. <?php
    2. $username = 'admin';
    3. $userName = 'qj';
    4. echo $username,'<br>';
    5. echo $userName,'<hr>';
    6. // 函数不区分大小写。 strtoupper:将一个字符串转为大写
    7. echo strtoupper($userName),'<br>';
    8. echo STRTOUPPER($userName),'<hr>';

变量传值:是指有一个变量已经存在数据,然后将该变量赋值给另外一个变量

  • 值传递:(变量代表的数据传递,变量自身不受彼此影响,在一个变量发生改变后,另外一个变量不受影响)
  1. // 值传递(默认方式)
  2. $price1 = 3999;
  3. $price2 =$price1;
  4. echo $price2,'<br>';
  5. $price1 = 6999;
  6. echo $price2,'<hr>';
  7. $price1 = 3999;
  8. $price2 =$price1;
  9. echo $price1,'<br>';
  10. $price2 = 6999;
  11. echo $price1,'<hr>';
  • 无论改变那个变量的值 另一个总是不变

  • 引用传递:变量代表的数据所在地址传递,一个改变会影响另外一个,一个变量改变后,另外一个变量跟着改变

  1. //引用传递 在等号的右边/右值前面加上&(取地址符)
  2. $price1 = 3999;
  3. $price2 =&$price1;
  4. echo $price2,'<br>';
  5. $price1 = 6999;
  6. echo $price2,'<hr>';
  7. $price1 = 3999;
  8. $price2 =&$price1;
  9. echo $price2,'<br>';
  10. $price2 = 6999;
  11. echo $price1,'<hr>';
  • 随便改变任意一个变量 另一个跟着改变

可变变量:是获取一个普通变量的值,作为这个可变变量的变量名。

  1. /* 先创建变量 $email 然后打印输出,
  2. 在创建$var变量(var的值等于email变量的名),
  3. $email可以写成:$$var(可变变量)。都是输出admin@php.cn
  4. */
  5. $var = 'email';
  6. // $email = 'admin@php.cn';
  7. // 变量名可以动态创建
  8. $$var = 'admin@php.cn';
  9. echo $email;

变量的检测与删除

  1. // 打开所有报错
  2. error_reporting(E_ALL);
  3. // echo $username;
  4. // isset() 变量检测
  5. $username = '丘佳';
  6. $username = null;
  7. // isset(): 如果该变量存在且值不为null,才是true(才打印)
  8. if(isset($username)) echo $username.'<br>';
  9. else echo '没有定义该变量';
  10. // unset():销毁变量,没有返回值
  11. unset($username);
  12. // 因为删除了浏览器会报错 提示没有定义变量
  13. echo $username;

数据类型:{四种标量(基本)类型,两种复合类型,两种特殊类型}

  • 整数/型(integer):包括正整数 负整数 和0。
    必须至少有一个数字(0~9);
    不能包含逗号或空格;
    不能包含小数点;
    可以是正数或负数。

  • 浮点型(float/double):浮点型也是用来表示数字的,与整型不同除了可以表示整数外它还可以用来表示小数和指数

  • 字符串(string):单引号方式、双引号方式、Heredoc 方式。
  • 布尔型(boolean):只有两种取值,true和false而且不区分大小写

  • 复合数据类型:复合数据类型允许将多个类型相同的数据聚合在一起,表示为一个实体项。复合数据类型包括数组(Array)和对象(Object)
  1. //2. 复合类型,对象,数组
  2. $obj = new stdClass;
  3. // 对象是属性和方法的无序集合
  4. $obj->name ='peter zhu';
  5. echo $obj->name,'<hr>';
  6. // 数组
  7. $arr = ['电脑', 4500, 'dell'];
  8. // print_r() 以人性化的方式打印变量,true表示不直接打印,而返回给调用者
  9. // 返回就一定要有个接受者
  10. $str = print_r($arr,true);
  11. echo '<pre>'.$str.'</pre>';
  12. // 基本类型:标量,单值。
  13. // 复合类型:多值。
  14. // 特殊类型
  15. // null
  16. $num = null;
  17. var_dump($num);
  18. echo '<br>';
  19. //文件资源类型
  20. $f = fopen('demo2.php','r');
  21. var_dump($f);

数据类型转换:

  1. <?php
  2. // 变量的类型转换(运算时候)
  3. // 自动转换:
  4. $a = null;
  5. $b = true;
  6. $c = false;
  7. $d = '5g';
  8. $e = 'php';
  9. $f = 15;
  10. // null 在算数运算中自动转为0
  11. echo $a + 10, '<br>';
  12. // 布尔值true在算数运算中 转为 1和 flase转为0
  13. echo $b + 10, '<br>';
  14. echo $c + 10, '<br>';
  15. //字符串只有以数值或者小数点开始的时候,
  16. //系统才会有可能将字符串进行数值转换,要不然直接转换成0
  17. echo $d + 10, '<br>';
  18. echo $f + 10, '<br>';
  19. // . 是字符串连接
  20. // 吧sf转换为'15'
  21. echo $e . $f, '<br>';
  22. echo '<hr>';
  23. // 强制转换 不推荐使用
  24. echo (int)$e + 10, '<hr>';
  25. // intval(),strval() 只是临时转换
  26. // intval() 将字符串转为整数
  27. echo intval($e) + 20, '<hr>';
  28. echo gettype($e),'<hr>';
  29. // strval() 将整数转为字符串
  30. echo strval($f) . 'hello';
  31. echo '<hr>';
  32. echo gettype($f);
  33. echo '<hr>';
  34. //永久转换 settype();
  35. settype($f,'string');
  36. echo gettype($f);

总结:

与之前相比 还是进步了一些,现在开始第二阶段的php,感觉又回到了小白,还是需要继续坚持。

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