类型转换

  • 临时转换:用户

    • 转换成整数 (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 只用在类和全局中

更多相关文章

  1. php的初步认识与常用数据类型
  2. C语言——C语言常用关键字总结(新手 还请不吝赐教)(一)
  3. SQL优化小讲堂(七)——合理使用变量
  4. 我的第38个代码
  5. 关于指针
  6. Python实现双因素方法分析(Two-Way)
  7. shell脚本中数组常用操作
  8. 3-10(栈的习题和队列的实现)
  9. 2021-03-10:一个数组上共有 N 个点,序号为0的点是起点位置,序号为N-

随机推荐

  1. ProgressBar 颜色的设置
  2. android xlistview
  3. Talking about Android Process
  4. android 系统编译要求,官方资料
  5. Android(安卓)BroadcastReceiver 简介
  6. Android local manifest
  7. android 设置Button为圆形按钮
  8. 不自动弹出键盘
  9. android中怎么在文字两边划线
  10. android布局实例代码