博主信息
博文 45
粉丝 0
评论 0
访问量 46953
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php数据类型的转换与检测、变量的基础知识
咸鱼老爷
原创
738人浏览过

类型转换

  • 临时转换:用户

    • 转换成整数 (int)
      $id='123'; echo (int)$id; echo gettype((int)$id);
    • 转换成字符串 (string)
      echo (string)$id; echo gettype((string)$id);
    • 转换成浮点数(float)
      $id='123.456';echo (float)$id; echo gettype((float)$id);
    • 转换成数组 (array)$n,访问 ((array)$n)[0]
      $id='123.456'; echo ((array)$id)[0]; echo gettype((array)$id);

      字符串转对象(object)$str,((object)$str)->scalar;
      $id='123.456'; echo ((object)$id)->scalar; echo gettype((object)$id);
  • 自动转换:系统

    每一种操作符,它要求的操作数类型是固定的,如果不满足就自动转换
    • ‘+’ 要求参与计算的数据都是数值类型,如果不是,就自动转换为数值
      1. echo 1+'2','<br>';
      2. echo (int)'a2','<br>';
      3. echo 1+'2a','<br>';
      4. echo (int)'2a','<br>';

      如果字符串开始是英文,则不能转换或者为0,如果开始是数值型字符串,则省略掉后面的英文字符串
    • ‘.’ 两边都是字符串,如果不是就转换
      echo 'php'. 123 .'<br>'; echo 'php'.(string)123;
    • 布尔类型转换
      1. if(!$a) echo'没有定义';
      2. var_dump($a);
      3. var_export((bool)null);
      4. if(!isset($a)) echo'没有定义';
  • 永久转换:只针对变量

    settype()设置变量类型 gettype()获取变量类型

    1. $price=6666;
    2. settype($price,'string');
    3. echo $price;
    4. echo gettype($price);

    变量类型检测

    • is_numeric() 检测参数是否是数值或者数值型的字符串;
      1. function sum($a,$b){
      2. if(is_numeric($a) && is_numeric($b))
      3. echo $a.'+'.$b.'='.($a+$b).'<br>';
      4. else echo'参数类型错误';
      5. }
      6. sum(1,2);
      7. sum('1',2);
      8. sum('1','2');
      9. sum('php','abc');
    • is_string()
    • is_boole()
    • is_array()
    • is_object()
    • is_null()
    • is_resource()是否资源
    • is_scalar()检测变量类型是否是标量 (单值) 数值对象不是
      php7+:参数类型检测,支持复合类型也支持标量
      1. function sum1(int $a,int $b){
      2. return $a.'+'.$b.'='.($a+$b);
      3. }
      4. echo sum1('1',2);

    变量代码中需要暂存的数据,按名访问

    • 合法标识符
      • 仅允许使用 英文字母(a-z,A-Z),数字(0-9),下划线(_);
      • 禁止使用数字开头;
      • 标识符有二类:预定义的(保留字,关键字) 自定义;
  • 变量声明

    变量声明规则
    -1.变量必须要以’$’为前缀:$name,
    -2.变量严格区分大小写,函数不区分大小写

  1. function hello($name){
  2. return $name;
  3. }
  4. echo HELLO('php').'<br>';
  5. echo hello('html').'<br>';
  6. $name='php';
  7. $Name='html';
  8. echo $name.'<br>';
  9. echo $Name;


命名规则
-1、驼峰式命名
-2、蛇形 xx_xxx()函数
-3、帕斯卡UserModel 类,大驼峰
-4、常量 全大写

  • 变量赋值

    • $$可变变量,变量标识符来自另外一个变量
      1. $$url='站点';
      2. echo $url.'=>'.$$url.'<br>';
      3. echo $url.'=>'.$site.'<br>';
    • 默认是值传递
      1. $price2=$price;
      2. printf('price=%d,price2=%d <br>',$price,$price2);
      3. $price=456;
      4. printf('price=%d,price2=%d <br>',$price,$price2);
    • 引用赋值 其实就是给原始变量起一个别名,并为创建新变量
      1. $price2=& $price;printf('price=%d,price2=%d <br>',$price,$price2);
      2. $price=789;
      3. printf('price=%d,price2=%d <br>',$price,$price2);
  • 预定义变量

    超全局变量:数组,任何地方都可以访问,不受作用域限制
    $GLOBALS:引用全局作用域中可用的全部变量
    $_SERVER:服务器和执行环境信息
    $_GET:通过url参数传递给当前脚本的变量的数组
    $_POST:当http post请求的content-type=application/X-www-data
    $_FILES:通过http post方式上传到当前脚本的文件的数组
    $_COOKIE:通过http Cookies方式传递给当前脚本的变量的数组
    $_SESSION:当前脚本可用session变量的数组
    $_REQUEST:默认包含了$_GET $_POST $_COOKIE 的数组
    $_ENV:通过环境方式传递给当前脚本的变量的数组
    1. $email='admin@qq.com';
    2. printf('name=%s,email=%s',$name,$email);
    3. echo '<br>';
    4. printf('name=%s,email=%s',$GLOBALS['name'],$GLOBALS['email']);
    1. // var_dump($_SERVER);
    2. echo 'ip:'.$_SERVER['REMOTE_ADDR'].'<br>';
    3. echo '浏览器:'.$_SERVER['HTTP_USER_AGENT'].'<br>';
    4. echo '当前php文件绝对路径='.$_SERVER['SCRIPT_FILENAME'].'<br>';
    5. echo '当前php文件相对路径='.$_SERVER['SCRIPT_NAME'].'<br>';
    6. echo '当前php文件名称='.$_SERVER['PHP_SELF'].'<br>';
    7. echo '查询条件='.$_SERVER['QUERY_STRING'].'<br>';
    8. echo 'PATH_INFO='.$_SERVER['PATH_INFO'].'<br>';
    9. echo 'URI:'.$_SERVER['REQUEST_URI'].'<br>';
    10. echo $_GET['id'];

    常量

    常量是固定的值,一旦创建不可更新不可删除
    常量不是变量,不加$;常量推荐全部大写,多个常量之间用_连接
  • 1 define()函数
    define('NATION','CHINA');
  • 2 关键字 const
    const GENDER='男';
    printf('国籍:%s,性别:%s',NATION,GENDER);
  • const 和define的区别
    • const运行在编译阶段,必须要有值
    • define()在运行阶段才创建变量
    • const 只支持字面量,不支持表达式
    • const 只用在类和全局中
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学