PHP:变量

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>变量</title>
</head>
<body>
<?php

  date_default_timezone_set("Asia/Shanghai");

  /**
   * 获取指定类型变量值
   * intval():  获取变量的整数值
   * floatval(): 获取变量的浮点值
   * strval(): 获取变量的字符串值
   * boolval(): 获取变量的布尔值
   * gettype(): 获取变量的类型
   * settype(): 设置变量类型,强制转换变量类型
   */
  function demo() {
    $var_int = 1;
    $var_float = 1.23;
    $var_str = 'abc';
    $var_bool = true;
    var_dump(intval($var_int));
    var_dump(floatval($var_float));
    var_dump(strval($var_str));
    var_dump(boolval($var_bool));
    // 获取变量类型
    var_dump(gettype($var_int));
  }
  // demo();

  /**
   * 检测变量
   * isset():  检测变量是否设置,并且不是 NULL ,可以用来检测一个变量是否已被初始化
   * empty():  检查一个变量是否为空,当var存在,并且是一个非空非零的值时返回 FALSE,否则返回 TRUE 
   * is_string():  检测变量是否是字符串
   * is_int():   检测变量是否是整数
   * is_float():  检测变量是否是浮点型
   * is_bool():  检测变量是否是布尔型
   * is_array():  检测变量是否是数组
   * is_object():  检测变量是否是一个对象
   * is_null():  检测变量是否为 NULL
   * is_resource():  检测变量是否为资源类型
   * is_numeric():  检测变量是否为数字或数字字符串
   * is_scalar():  检测变量是否是一个标量
   * is_callable():  检测参数是否为合法的可调用结构
   */
  function demo2() {
    // empty和isset的比较
    $var = 0;
    $var = NULL;
    $arr = array(
      'a' => 'A'
    );
    if (empty($var)) {
      echo  '$var is either 0, empty, or not set at all<br>'; //输出内容成功
    }
    if (isset($var)) {
      echo  '$var is set even though it is empty<br>';
    }
    if (isset($arr['a'])) {
      echo 'success';
    } else {
      echo 'false';
    }
  }
  // demo2();

  /**
   * 序列化和反序列化
   * serialize()和unserialize()
   * 作用:serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方,这有利于存储或传递 PHP 的值,同时不丢失其类型和结构
   * tips: serialize()可处理除了resource之外的任何类型。
   */
  function demo3() {
    $arr = array(
      'a' => 'A',
      'b' => 'B',
      'c' => 'C' 
    );
    $serialize_data = serialize($arr);
    var_dump($serialize_data);
    echo '<br>';
    $unserialize_data = unserialize($serialize_data);
    var_dump($unserialize_data);
  }
  // demo3();

  /**
   * 引用的使用
   */
  function demo4() {
    $foo  =  'Bob' ;               // 将 'Bob' 赋给 $foo
    $bar  = & $foo ;               // 通过 $bar 引用 $foo
    $bar  =  "My name is  $bar " ;   // 修改 $bar 变量
    echo  $bar ;
    echo  $foo ;                  // $foo 的值也被修改
  }
  // demo4();

  /**
   * 可变变量
   * tips: 预定义变量单独介绍
   */
  function demo5() {
    $a = 'hello';
    $$a = 'world!';
    echo $hello.'<br>';

    class Foo {
      var $bar = 'I am bar.';
      var $arr = array('I am A.', 'I am B.', 'I am C.');
      var $r = 'I am r.';
    }

    $foo = new Foo();
    $bar = 'bar';
    $baz = array('foo', 'bar', 'baz', 'quux');
    echo $foo->$bar.'<br>';
    echo $foo->$baz[1].'<br>';

    $start = 'b';
    $end = 'ar';
    echo $foo->{$start.$end}.'<br>';

    $arr = 'arr';
    echo $foo->{$arr[1]}.'<br>';
    echo $foo->arr[1].'<br>';
    echo $foo->{$arr}[1].'<br>';
  }
  // demo5();

  /**
   * 其他API
   * get_defined_vars — 返回由所有已定义变量所组成的数组
   * get_resource_type — 返回资源(resource)类型
   * var_export — 输出或返回一个变量的字符串表示
   * var_dump — 打印变量的相关信息
   * unset — 释放给定的变量
   * $_GET、$_POST、$_REQUEST、$HTTP_POST_VARS等可以获取外部变量
   */

?>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值