博客列表 >php标签,php变量,php数据类型与数据类型转换

php标签,php变量,php数据类型与数据类型转换

笼子猪
笼子猪原创
2020年07月03日 16:23:14745浏览

php标签,php变量,php数据类型与数据类型转换

1.php标签

  1. php程序 以 \<?php 开头
  2. php程序 以 \?> 结尾
  3. ; 语句分隔符 代表当前语句的结束
  4. // php单行注释
  5. / 多行注释 /
  6. 代码缩进 提高代码的可读性
  7. 打印函数(echo,print var_dump,print_r ……);
  8. 拼接使用. -> 通过 . 拼接的数据都会变成字符串(String) 类型

程序是纯php代码可以不用写结束标签 否则(代码中存在其他代码)则需要完整的写出php脚本<?php ?>

添加注释的代码不会被程序执行,作用 说明注释内容的信息 作用 方便后期维护与逻辑的梳理

  1. <?php
  2. // 单行注释
  3. // 只存在php程序 可以不用 php结束标签
  4. echo '2020-7-3';
  5. function sum($a,$b){
  6. return "{$a} + {$b} = " . ($a + $b);
  7. }
  8. // 调用函数 sum 并打印函数返回结果
  9. echo sum(10,20);
  1. <?php
  2. /*多行注释
  3. 此脚本存在html标签 需要在适当的地方书写php结束标签
  4. */
  5. echo '2020-7-3';
  6. ?>
  7. <p>12312</p>

7.打印语句

  1. // echo 可以打印多个表达式,并且识别html标签。但 echo 没有返回值。
  2. $username = '盘古';
  3. $hobby = ['唱','跳','rap','篮球'];
  4. echo 123,'<br/>',$username;
  5. // print 只能打印单个表达式 如果非要打印多个变量使用 . 拼接 print()有返回值。
  6. print($username);
  7. print('hello') . $username;
  8. // var_dump() 获取数据的详细信息(变量类型,长度,值);
  9. // ps: 1.utf-8编码类型中 中文汉字一般占3个字符 2.gbk编码中一般占2个字符
  10. var_dump(123.5);
  11. // float(123.5)
  12. var_dump($username);
  13. // string(6) "盘古"
  14. // var_export(); 输出或返回一个变量的字符串表示(源代码)
  15. // 1.直接输出 结果
  16. var_export($hobby);
  17. // 2.也可以通过设置 var_export()的第二个参数为True 从而返回变量的表示
  18. $h = var_export($hobby,true);
  19. print($h);

2.变量

变量是临时存储数据的容器

变量是实现代码复用的有效途径

  1. 变量的命名

php变量名必须以 ‘$’ 开头

php变量名不能以数字开头

变量名允许以 ‘_’开头

变量名不能包含特殊字符(@ # & * …..)

*变量名(变量标识符):仅允许字母,下划线,数字组合,并且不能以数字开头

*不推荐命名规则: 使用中文 无意义命名

  1. // php 变量区分大小写 函数不区分大小写
  2. // javascript 变量和函数都区分大小写
  3. // 变量区分大小写
  4. $username = 'admin';
  5. $userName = 'root';
  6. print($username);
  7. print($userName);
  8. // admin root
  9. // 函数 类名不区分大小写(内置函数,自定义函数);
  10. // 例如:
  11. echo strtoupper($username);
  12. echo STRTOUPPER($username);
  13. // ADMIN ADMIN
  14. function upName($name){
  15. echo strtoupper($name);
  16. }
  17. upName($username);
  18. UPNAME($username);
  19. // ADMIN ADMIN
  1. 变量的动态: 变量的类型随值而变化
  1. $var = 123;
  2. var_dump($var);
  3. // int(123)
  4. // 此时修改$var的值为 'admin'
  5. $var = 'admin';
  6. var_dump($var);
  7. // string(5) "admin"
  8. // $var 的类型由 int类型 变成了 string类型
  9. // php 变量的类型由值决定 和javascript一样
  1. 变量的赋值(传递):值传递和引用传递
  • 值传递(默认的方式)
    ```php
    $price1 = 99;
    $price2 = $price1;
    // 更新 price2 的值
    $price2 = 199;
    echo ‘$price1->’,$price1,’<br>‘;
    echo ‘$price2->’,$price2,’<br>‘;

    // $price1->99
    // $price2->199
    // 值传递 只是将 一个变量的值 复制一份 并重新给另一个变量赋值 之后两个变量就没有关系

  1. + 引用传递
  2. ```php
  3. // 引用传递
  4. $name1 = 89;
  5. // 在等号的右边(右值)前面加上&(取地址符,)
  6. $name2 = &$name1;
  7. $name2 = 288;
  8. echo '$name1->'.$name1.'<br>';
  9. echo '$name2->'.$name2.'<br>';
  10. // $name1->288
  11. // $name2->288
  12. // name1和name2同步更新
  13. // 引用传递 将一个变量的内存地址 赋值给另一个变量 此时两个变量指向同一个内存地址 每次修改变量值 并不是修改的内存地址 而是修改的值 所以两个变量的值都会发生变化
  1. 可变变量

    1. $var = 'email';
    2. //$email = '1852331324154@qq.com';
    3. $$var = '1852331324154@qq.com';
    4. echo $email;
    5. //通过可变变量 用代码生成变量名使用
  2. 变量的检测和删除

    规定不同的错误级别报告

    1. // 关闭错误报告
    2. error_reporting(0);
    3. // 报告 runtime 错误
    4. error_reporting(E_ERROR | E_WARNING | E_PARSE);
    5. // 报告所有错误
    6. error_reporting(E_ALL);
    7. // 等同于 error_reporting(E_ALL);
    8. ini_set("error_reporting",E_ALL);
    9. // 报告 E_NOTICE 之外的所有错误
    10. error_reporting(E_ALL & ~E_NOTICE);

变量检测 isset();

  1. isset() 判断变量是否存在且值不为null
  2. 如果变量不存在 返回 false
  3. 如果变量存在但值为 null 返回false
  4. 如果变量存在且值不为 null 返回 true
  1. // var_dump(isset($name)); 判断变量是否存在且值不为null
  2. //
  3. var_dump(isset($name));
  4. // 打印 bool(false) 说明变量为null
  5. $name = null;
  6. var_dump(isset($name));
  7. // 打印 bool(true) 说明变量存在且不为 null
  8. if(isset($name)){
  9. echo '变量存在且值为:'.$name;
  10. }else{
  11. echo '变量未定义';
  12. }
  13. // 程序进入了 else 此时虽然变量 $name 存在 但它的值为 null 返回了 false

变量删除 unset()

  1. unset() 是一个函数 但是它没有返回值(不能用于 判断语句)

判断值是否为空 empty()

  1. empty() 判断变量是否为空或者不存在
  2. 如果变量不存在 返回 true
  3. 如果变量值为空 ‘’, 返回 true
  4. 如果变量存在 且值不为空 返回 false
  1. $var = '';
  2. if(empty($var)){
  3. echo '返回true';
  4. }else{
  5. echo '返回false'
  6. }
  7. // 进入了 if 语句 因为此时 变量为空

数据类型

  1. 基本类型

    字符串类型(string):字符串是连续的字符序列,字符串中的每个字符只占用一个字节 ‘’和””包裹的字符串有不同含义 ‘’包裹的字符串就是普通的字符串 “”包裹的字符串 PHP 将对一些特殊的字符进行解析(\n \t \r ….)

布尔值(boolean): true 或者 false(真或者是假) 0 undefined null false 都为 false 其余的都为 true

整数(integer): 整数数据类型只能包含整数。这些数据类型可以是正数或负数

浮点数(float): 浮点数是有小数点或指数形式的数字。

  1. 复合类型

数组(array):数组在一个变量中存储多个值。

对象(object): 对象是存储数据和有关如何处理数据的信息的数据类型。对象的属性和方式是无序的,通过对应的键获取对应的值

  1. 特殊类型

资源(resource):文件资源类型

空值(null): 空值是最简单的数据类型。表示没有为该变量设置任何值,另外,空值(NULL)不区分大小写

  1. // 基本类型(标量 单值); 存放在栈内存中
  2. $name = '盘古';
  3. $bool = false;
  4. $age = 12;
  5. $price = 12.6;
  6. // 复合类型(多值); 数据存放在堆内存中 但内存地址 存在栈内存中
  7. // 对象
  8. $obj1 = new stdClass;
  9. $obj1 -> name = '盘古';
  10. $obj1 -> age = 18;
  11. var_export($obj1);
  12. echo '<br/>';
  13. echo $obj1->name; // 打印 对象 name属性
  14. // 数组
  15. $arr = ['cl',18,'唱'];
  16. $lan = print_r($arr,true);
  17. echo '<pre>'.$lan.'</pre>'.'<br />';
  18. echo $arr[0]; // 打印数组下标为0的值
  19. // 特殊类型
  20. $nu = null;
  21. echo gettype($nu);
  22. // 打印null类型
  23. // 文件句柄
  24. $file1 = fopen("text.txt",'r');
  25. var_dump($file1);
  26. // resource(3) of type (stream) 资源类型
  1. 获取数据类型 gettype()
  1. $one = '132';
  2. echo gettype($one);
  3. // string
  1. 设置数据类型 settype()

  2. 数据类型转换 settype()

自动转换: 是由php内部转换的 不需要主动转换
```php
$name = ‘判断’;
$age = 18;
$t = true;
$f = false;
$g = ‘5g’;
$g1 = ‘g5’;
$ph = ‘php’;
echo $name + 10,’<br />‘;
// 警告 $name 为非数值 并且不是以数字开头 php自动转换为 0; 打印结果 为 0 + 10 = 10;
echo $age + 10,’<br />‘;
// 两个数值类型相加 得到结果 18 + 10 = 28
echo $t + 10,’<br>‘;
// php内部将 布尔值类型 true 转换成 1 得到结果为 1 + 10 = 11
echo $f + 10,’<br>‘;
// php 内部将 布尔值false转换成0 得到结果 0 + 10 == 10
echo $g + 10,’<br>‘;
// 首先警告 ‘5g’为字符串 但首位是由5开头 所以将 5g 转成了5 得到结果 5 + 10 = 15
echo $g1 + 10,’<br />‘;
// 首位为 g php不会将 g5转换成数字 所以的到 0 + 10 = 10;
echo $ph . 15;
// php 字符串拼接 将15装换成’15’ ‘php’ + ‘15’ = php15

  1. > 强制转换:
  2. 1. 临时转换 (转换类型)变量 (int,string...) 但这种转换是临时转换的 变量本身并没有变化数据类型
  3. 2. 永久转换 settype() settype(变量,转换类型); 这种装换会将变量类型永久改变
  4. ```php
  5. // 临时转换
  6. $str1 = 'admin';
  7. var_dump((int)($str1));
  8. // int(0) 将字符串'admin' 强制转换成整数类型
  9. var_dump((bool) "");
  10. // 将空字符串转换成布尔值 false
  11. echo (int)$name + 10,'<br />';
  12. // 将字符串先转成数值 再和数值进行运算
  13. echo (int)$name + 10,'<br />';
  14. // 使用 intval()强制转换
  15. echo intval($name) + 20,'<br />';
  16. // 打印结果 仍然是 string
  17. echo gettype($name),'<br>';
  18. // 永久转换 settype()
  19. settype($var,$type);
  20. // $var:要转换的变量;
  21. // $type:可能要转换的数据类型 (integer,float,string,array,object,boolean,null);
  22. $foo = '5bar';
  23. settype($foo,"integer");
  24. var_dump($foo);
  25. $nums = 15;
  26. settype($nums,"string");
  27. var_dump($nums);
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议