php数据类型以及运算

什么是PHP?
    拍黄片。
    HTML:HyperText Mark-up Language 超文本标记语言
    PHP(PHP:Hypertext Preprocessor )超文本预处理器,是一种运行在服务器端的脚本语言,尤其适合web开发。


PHP能干什么?
    收集表单数据
    生成动态网页
    收发cookies
    跨平台运行
    输出图像
    文件处理
    处理XML格式的数据
    处理JSON格式的数据
    会话跟踪
    。。。。。




    服务端脚本,用于写web网页(主攻)CGI
    命令行脚本,CLI
    编写桌面应用程序


PHP的特点
    跨平台运行
    开源免费
        http://www.github.com
    支持大多数的web服务器
    支持很大范围的数据库


PHP的发展史
    1995年由Lerdorf(PHP之父)发明
    1998年PHP3发布
    2000年PHP4发布,开始引入面向对象的思想(半成品)
    2004年PHP5发布,完全的支持面向对象思想
        5.4或者5.6最稳定
    2015年12月3号直接发布了PHP7,速度翻了一倍


第一个PHP文件
    1.环境装好之后,进入到网站根目录(www,如果不是wampserver,有可能是htdoc)
    2.新建的文件后缀名一定是.php,文件名不能是中文的
    3.写php代码:phpinfo();
    4.在浏览器中访问文件:http://localhost:80/demo.php


HTML中嵌套PHP代码:
    1.文件后缀必须是php
    2.可以嵌套到任何地方:body中、html之外、属性中、css中
    3.PHP代码必须被<?php ?>所包裹


PHP的标记
    1.标准风格(常用)
        <?php php代码 ?>
    5.<?= 是echo的简写(常用)
        <?='123';?> 相当于 <?php echo '123'; ?>




    2.长风格(废物!!!!)
        <script language="php">php代码</script>
    3.短风格(废物!!!!)
        <? php代码 ?>
        需要在php.ini中开启short_open_tag(将它设置为on,默认为off)
    4.asp风格(废物!!!!)
        <% php代码 %>
        需要在php.ini中开启asp_tag(将它设置为on,默认为off)


    注意:
        PSR规范中,只允许使用<?php ?>和<?= ?>这两种
        如果是纯php文件,标准风格的结束标记可以不写


指令分隔符
    PHP中语句分为两种
        1.结构定义语句
            流程控制、分支、循环、函数。。。用大括号标识,可以不加分号
        2.功能执行语句
            输出、变量定义、函数调用。。。后面必须加上分号
    提示:php的结束标记中隐含了一个分号,最后一条语句可以不加分号


PHP中的注释
    注释掉的代码,PHP都会忽略解析
    1.//单行注释
        //注释内容。。。
    2.多行注释
        /*
            注释内容
         */
    3.#单行注释
        # 注释内容。。。


PHP中对空白符的处理
    PHP会忽略空格、换行、tab制表符的解析,所以可以利用这个特点写出可读性比较高的代码
    要求:php代码必须要按照严格的缩进;PSR规范规定,缩进只能4个空格(因为tab制表符的宽度,编辑器解释不一样,不利于代码的移植)


变量
    什么是变量?
        变量是用于临时存储值的容器
        值可以是数字、文本或者其他一些比较复杂数据(数组、对象)


    变量的特性
        PHP是弱类型的语言,不必告知变量的类型是什么,它会根据存储的值来决定这个变量是什么类型的


    *变量的命名规范:
        1.必须以$开始,后面跟变量名
        2.变量名由字母、数字或者下划线_组合而成
        3.不能以数字开头
        4.严格区分大小写
        5.可以是中文,但是别让我看到这种代码,不然罚抄10000遍


PHP中的数据类型
    4种标量类型
        boolean     布尔型
            只有两个值,要么是true,要么是false
            通常用于if判断,其他类型转换为布尔型得到false的情况:
                布尔型:false
                字符串:''  '0'
                整型:0 -0
                浮点型:0.0
                数组:array() 空数组
                null:null(包括未定义的变量)
            其他所有值都被认为是true


        integer     整型
            1.整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。 
                八进制表达,数字前必须加上0(零)
                十六进制表达,数字前必须加上 0x
                二进制表达,数字前必须加上 0b
            2.PHP中整型的字长用PHP_INT_SIZE表示,一般占4个字节
            3.整型的取值范围:PHP_INT_MAX 正负二十多个亿!超出取值范围自动转换为浮点型
                -2147483647~2147483647


        float       浮点型
            1.浮点数,就是有小数点的数,通常用来表示整数无法表达的数值,比如金钱值、距离值、速度值
            2.可以用科学计数法来表示
            3.在PHP中float也有最大数,1.8e308
            4.浮点数的精度有问题
            5.将浮点数取整的函数
                round()     四舍五入
                floor()     舍去取整
                ceil()      进一取整


        string      字符串类型
            定义方式:
                1. 单引号
                2. 双引号
                3. heredoc 定界符方式
                4. nowdoc(5.3以上)
            单双引号的区别:
                1、双引号可以解析变量;单引号不能解析变量,会原样输出;
                2、双引号可以解析转义字符;单引号只能转义\\和\'本身;
                3、单双引号都不能自己嵌套自己,可以互相嵌套


            转义字符:
                \r  回车
                \n  换行
                \t  制表符
                \\  斜线本身


            heredoc和nowdoc
                heredoc定界符可以嵌套单双引号,可以解析变量和转义字符
                nowdoc可以嵌套单双引号,不能解析变量和转义字符


            建议:尽量使用单引号,效率略高
    2种复合类型
        array       数组类型
        object      对象类型
    2种特殊类型
        resource    资源类型
        null        空
            只有一个值,就是null本身
            得到null的情况:
                1、直接赋值为null
                2、未被赋值的变量,默认值也是null
                3、被unset()删除掉的变量也是null


    PHP中的伪类型(看手册,var_dump()),并不是PHP的原始数据类型
        mixed:代表这个参数可以是多种不同的类型
        number:代表这个参数可以是int或者float
            pow()
        callback:还有个别名叫callable,代表这个参数必须是一个函数(回调函数)
            call_user_func()、session_set_save_handler()
        void:代表这个函数不接收任何参数;如果作为返回值,表示这个返回值是无用的
            time( void )
            var_dump()
            unset()


    PHP中的类型转换
        强制转换
            (int)/(integer)     强制转换为整型
            (bool)/(boolean)    强制转换为布尔型
            (float)             强制转换为浮点型
            (string)            强制转换为字符串
            (array)             强制转换为数组
            (object)            强制转换为对象
            (unset)             强制转换为null
        自动转换
            布尔环境
            数值环境
            字符串环境


    数据类型的判断:
        is_bool()       检测变量是否是布尔型
        is_string()     检测变量是否是字符串类型
        is_int()        检测变量是否是整型
        is_float()      检测变量是否是浮点型
        is_array()      检测变量是否是数组类型
        is_object()     检测变量是否是对象类型
        is_resource()   检测变量是否是资源类型
        is_null()       检测变量是否是null空类型


        is_scalar()     检测变量是否是标量类型(int、float、string、boolean)
        is_numeric()    检测变量是否是数字或数字字符串


        gettype($a)   获取变量的类型
        settype($a, 'bool')   设置变量的类型(类似于强制转换)


常量
    常量
        汉语字典中第1条解释:长久,经久不变,常量也就是恒量
        一经定义,不能删除和改变。


    常量的定义:
        define
            define('常量名', 常量值);
        const
            const 常量名 = '常量值';


        常量名:
            和变量名一样,只能是数字、字母或下划线;
            不能以数字开头 (定义的时候可以,但用不了)
            严格区分大小写(define可以通过第3个参数指定是否区分大小写,true不区分)
        常量值:
            define定义的常量,除了object之外,都可以;(数组是PHP7新加的)
            const定义的常量值,不能是资源和对象;


    define和const的区别:
        const可在类中使用,define不能
        const不能在条件语句中定义常量
        const采用一个普通的常量名称,define可以采用表达式作为名称
        const只能接受静态的标量,而define可以采用任何表达式
        const定义的常量时大小写敏感的,而define可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。


    提示:echo一个未定义的常量时,会报一个notice并将常量名自动转换为字符串输出;


    defined(常量名)
        用于检测常量是否定义


    预定义常量:get_defined_constants()获取当前已经定义好的常量!
        PHP_INT_MAX
        PHP_INT_SIZE
        PHP_VERSION
        ...


    魔术常量:
        值会随着环境的变化而改变
        __LINE__    当前行号
        __FILE__    当前文件
        __DIR__     当前文件的目录
        __CLASS__
        __METHOD__
        __NAMESPACE__
        。。。


运算符
    运算符是可以通过给出的一个或多个值来产生另一个值的东西;
    有3种类型的运算符
        一元运算符
            只能够接收1个值参与运算的叫一元运算符
            1   -1  负值运算符 ++  --  !
        二元运算符
            2 + 2  算术运算符 + - * /
        三元运算符
            3   可以接收3个值的就是三元运算符 
    
    算数运算符
        +  -  *  /
        %   取余(取模)运算
            39 % 3 == 0     求两个数相除的余数;39除以3余数为0


    递增递减运算
        ++
            $i++;  //后递增: 先返回$i,再将$i的值加1,下次用的时候值就是加1后的
            ++$i;  //前递增:先将$i的值加1,然后返回加过1后的$i
        --
            $i--;   //同上
            --$i;
        提示:对布尔值无效


    字符串运算符
        .   将其左右参数进行拼接运算
        .=  将右边参数,附加到左边参数之后


    赋值运算符
        =
            将右边的表达式的值,赋值给左边的变量
        +=
            $a += 3;    //将$a加上3之后再赋值给$a,可以拆为$a = $a + 3;
        -=  *=  /=  %=


    比较运算符
        >       大于
        <       小于
        >=      大于等于
        <=      小于等于
        ==      等于
        ===     全等于
        != | <> 不等于
        !==     不全等于


    逻辑运算符:
        逻辑与:&&  and
            想娶你们丹姐,你要有房,并且还要有车!
            洗脸:左脸和右脸
            只有两边都为true,才返回true,否则返回false
        逻辑或:||  or
            想娶凤姐,要么你财大,要么你器粗!
            丢钱包:你找到了,或者我找到了
            只要有任何一边为true,结果就为true;
            注意:前面为true,后边就不再执行,俗称短路
        逻辑非  !
            小星星本来是纯爷们(true),去了趟泰国,被砍了一刀(false),就不纯了
            就是取反的意思
                $bool = true;
                !$bool == false
        逻辑异或 xor
            男(true)男(true)不能结婚;
            女(false)女(false)也不能结婚
            两边不一样才返回true,否则返回false


    位运算符(了解)
        按位与     &
        按位或     |
        按位异或   ^
        左移       <<
        右移       >>
        按位非     ~


    其他运算符
        ?: 三元运算符
            表达式1 ? 表达式2 : 表达式3;
            1为真就执行2,为假就执行3;
        @  错误控制符,可以屏蔽错误
        `` 执行运算符,可以执行一些操作系统的命令


        //别急,讲到相应知识点的时候会补充讲解
        =>  数组下标指定符号
        ->  对象成员访问符
        instanceof 类型运算符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值