zoukankan      html  css  js  c++  java
  • php 变量和数据类型

    $ 定义变量;

      变量来源数学是计算机语言中能存储计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的。

      php 中不需要任何关键字定义变量(赋值,跟Java不同,Java定义变量需要指定变量类型)

      php 使用 $ 定义变量

      定义:在系统中增加对应的变量名字(内存)

      赋值:可以将数据赋值给变量(可以在定义的同时完成)

      可以通过变量名 访问存储的数据

      可以将变量从内存中删除

    $a = 10;

    echo 访问输出变量 ;

    echo a;

    预定义变量

      预定于变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)  

        $GLOBALS — 引用全局作用域中可用的全部变量

        $_SERVER — 服务器和执行环境信息

        $_GET — HTTP GET 变量

        $_POST — HTTP POST 变量

        $_FILES — HTTP 文件上传变量

        $_REQUEST — HTTP Request 变量

        $_SESSION — Session 变量

        $_ENV — 环境变量

        $_COOKIE — HTTP Cookies

        $php_errormsg — 前一个错误信息

        $HTTP_RAW_POST_DATA — 原生POST数据

        $http_response_header — HTTP 响应头

      以下预定义变量只在命令行执行的时候生效

        $argc — 传递给脚本的参数数目

        $argv — 传递给脚本的参数数组

    可变变量

      如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多加一个$符号

      $a = 'b';

      $b = 'bb';

      $$a →

        1.找到$a解析结果:b

        2.将前面的$符号与结果b绑定:$b

        3.然后解析

    引用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间(连个变量是同一个值)

      $新变量 = &$老变量;

    const 常量名称 = 值;或 define('常量名','常量值');

      不需要使用 $ 符号

      define 和 const 定义的常量是有区别:在访问权限区别

    const CL = 100;

     系统

      在php中还有一些特殊的常量,他们有双下划线开始+常量名+双下划线结束,这种常量称之为系统魔术常量:魔术常量的值通常会跟着环境变化,但是用户改变不了

      __DIR__ 当前被执行的脚本所在电脑的绝对路径

      __FILE__ 当前被执行的脚本所在电脑的绝对路径(带自己文件的名字)

      __LINE__ 当前所属的行数

      __NAMESPACE__ 当前所属的命名空间

      __CLASS__ 当前所属的类

      __METHOD__ 当前所属的方法

     --------------------------------------------------------------------

    数据类型

      data type 在php中值的是存储的数据本身的类型,而不是变量的类型

      在php中将数据扥为三大类八小类:

        简单数据类型:4小类

          整型: int/integer 系统分配4个字节存储,表示整数型

          浮点型: float/double itong分配8个字节存储,表示小数

          字符: srting 系统根据长度分配

          布尔:bool/boolean 只有 true 和 false ,真与假

        复合数据类型:2小类

          对象: object 存放对象

          数组: array 存储多个数据

        特殊数据类型:2小类

          资源类型: resource 存放资源数据(php 外部数据,如数据库,文件)

          空类型:NULL

    强制转换规则:在变量之前增加一个括号(),然后里面写上转换的类型例: int,其中NULL类型需要用unset()

    注意当下列情况转换为 Boolean 时,其值为 FALSE
        布尔值 FALSE 本身
        整型值 0(零)
        浮点型值 0.0(零)
        空字符串,以及字符串 "0"
        不包括任何元素的数组
        特殊类型 NULL(包括尚未赋值的变量)
        从空标记生成的 SimpleXML 对象

    一组函数可以用来获取以及设定数据(变量)的类型

      gettype(变量名):获取类型,得到的是给类型对应的字符串

      settype(变量名,类型):设定数据类型:与强制转换不同

      1.强制转换(类型)变量名,是对数据值赋值的内容进行处理(不会处理实际存储的内容)

      2.settype 会直接改变数据本身

    // 判断数据类型
    $a = 'abc1.1.1';
    var_dump(is_int($a)); // false
    var_dump(is_srting($a)); // true
    echo gettype($a);
    // 设置类型
    $b = '1.1.1abc';
    var_dump(settype($b,'int'));
    echo gettype($b),$b;

    进制转换

      Decbin():十进制转二进制

      Decoct():十进制转八进制

      Dechex(): 十进制转十六进制

      Bindec(): 二进制转十进制

     -----------------------------------------------

     var_dump() 函数可以查看表达式的值和类型
    gettype() 函数用于检测变量类型
    is_ 加类型,如 is_int(),is_array() 等,判断变量是否为该类型

    --------------------------------------------------------------------------------------
    全局变量通常使用关键字 global 来声明

        $a = 1;
        $b = 2;
    
        function sum()
        {
            global $a, $b;
            $b = $a + $b;
        }
    
        sum();
        echo $b;


    常量是一个简单值的标识符,在脚本执行期间该值不能改变,通常使用全大写,PHP 中常量用 define() 函数或 const 关键字来定义,PHP 还包含一些预定义常量如 __LINE__、__FILE__ 等。
        注意使用 const 只能在类外部定义,且必须处于最顶端的作用区域,因为用此方法是在编译时定义的。这就意味着不能在函数内,循环内以及 if 语句之内用 const 来定义常量。
        

    有八个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定,这些特殊的常量不区分大小写。
        __LINE__,文件中的当前行号。
        __FILE__,文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
        __DIR__,文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
        __FUNCTION__,函数名称,返回该函数被定义时的名字。
        __CLASS__,类的名称,返回该类被定义时的名字。
        __TRAIT__,Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 FooBar)。
        __METHOD__,类的方法名,返回该方法被定义时的名字(区分大小写)。
        __NAMESPACE__,当前命名空间的名称(区分大小写)

     

  • 相关阅读:
    boost::function和boost::bind 介绍
    va_list 简介
    tcp异常断开的重连解决方法
    Nginx作为代理服务之反向代理
    Nginx作为代理服务之正反代理
    Nginx作为静态资源web服务之防盗链
    Nginx作为静态资源web服务之跨域访问
    Nginx作为静态资源web服务之缓存原理
    Nginx作为静态资源web服务之文件读取
    阿里云环境中配置tomcat7可能出现的问题及解决方法
  • 原文地址:https://www.cnblogs.com/mysterious-killer/p/9910597.html
Copyright © 2011-2022 走看看