========================
    PHP
========================
一、LAMP环境:
-----------------------------------------------
    1. 在window系统下开发php,所以我们安装的软件是AppServ集成环境。
    2. 安装成功后会有两个服务:Apache2.2 (端口:80)、MySQL5(端口:3306)
        还有一个php:脚本解释引擎
      
    3. 相关的配置文件:
        以Appserv安装环境为例: 安装目录:D:\AppServ
        1. Apache的配置文件:
                主配置文件:D:\AppServ\Apache2.2\conf\httpd.conf
                    常用配置信息:
                            Listen 80 端口
                            DocumentRoot "D:/AppServ/www" web目录
                其他辅助文件:D:\AppServ\Apache2.2\conf\ex
                  
                ra\目录下
                  
        2. MySQL的配置文件:D:\AppServ\MySQL\my.ini
          
        3. php的配置文件:C:\WINDOWS\php.ini
二、基础应用
-------------------------------------------
    1. 在www的web目录下,创建一个php文件
        在里面输入: <?php
                        phpinfo();
                    ?>
        之后通过浏览器访问(走http协议)此文件
          
    2. 什么是php?  php是超文本预处理器,是在服务器端执行,一种嵌入到html标签中的脚本程序
                    php是解释性语言,不是编译性语言。
      
三、php的基本语法
----------------------------------------------
    1. php嵌入到html中的方式:
        *1. <?php ... ?> 标准风格(推荐)
        2. <script language="php">....</script>  长风格
        3. <? ... ?> zai 短风格  需要在php.ini配置文件中开启short_open_tag选项才可以。
        4. <% ... %> 兼容ASP风格(默认不支持) 
                    需要在php.ini配置文件中开启asp_tags选项才可以。
      
    2. 在php中每条语句使用分号结束的。也就是分号是php语句之间的分割符。
         注意: 在每个脚本中,最后一条语句后可以没有分号结束。
           
    *3. 在php中注释:
            // 单行注释 (来自其他程序中的注释)
            #  单行注释 (来自脚本程序的注释)
            /* ...  */  多行注释  注意:不可以嵌套使用。
              
            /** .... */ 文档注释
              
    *4. 变量
        php是一个弱类型语言。
        变量的命名规范:
            变量是以$符开始定义的,
            变量名的规则:由字母、数字、下划线构成,不可以使用数字开头。
        在php中变量名是区分大小写
      
    5. 变量的类型:(8种)
        *在php中共计有8种基本数据类型:
            4种标量类型:
                整数(int)、浮点数(float/double)、布尔值(boolean)、字串(string)
            2种复合类型:
                数组(array)、 对象(object)
            2种特殊类型:
                资源(resource)、 空(NULL)
          
        其中:对象和资源类型属于引用类型,其他都属于值类型。
          
        5.1 整型:int类型
            php的整型是占4个字节(32位)的。而且是没有无负号
            储存值:-2147483648~2147483647
              
        5.2 浮点数:(不区分单精度和双精度,统一占8个字节)
            定义:
                $d1 = 12.5;
                $d2 = 0.1e3;  //100
          
        5.3 布尔值:(真true和假false)
            当转换为 boolean 时,以下值被认为是 FALSE:
                布尔值 FALSE 自身
                *整型值 0 (零)
                *浮点型值 0.0 (零)
                *空""字符串, 以及 字符串 "0"
                *不包括任何元素的数组
                不包括任何成员变量的对象(仅PHP 4.0 适用)
                *特殊类型 NULL (包括尚未设定的变量)
                从没有任何标记(tags)的XML文档生成的SimpleXML 对象
          
        5.4 字符串(string)
            在php中字串的定义方式:
                单引号: ' ' 不支持变量解析, 支持单引号'和\的转义。
                双引号:     " " 支持变量解析,为了兼容使用{}将变量括起来。
                            支持转义: \n \s \t \r \" \\ \$
                              
                定界符: <<<  注意接收符的使用
          
        5.5 数组array
                一个变量中可以储存多个值。
                数组分为:关联式数组和索引式数组
                  
                //定义:
                    $a = array(10,20,30,40);
                //使用:
                    echo $a[1   ]; //输出:20     
              
        5.6 对象:
        5.7 资源:
        5.8 null;
          
    6. 类型转换问题:
        6.1 布尔值/null:
                true在算术计算中可以自动转成数值1;
                false在算术计算中可以自动转成数值0;
                null在算术计算中可以自动转成数值0;
                直接输出true的值:1   false和null是没有输出结果
        6.2 字串类型的转换
                字串在算术计算中可以自动转成数值:
                规则:从字串前面开始找最大的数字即为数值
                "123abc" => 123
                "abc123" => 0
                "12a8c3"     => 12
                "abcd"   => 0
                "12.4bd" => 12.4
                "12e4abc"=> 12e4
      
    7. 常量定义:
          常量:一定义赋值后,不可以再次修改和销毁的量,成为常量
                特点: 在后面的所有程序中都可使用(对象中,函数内....)
          格式:define(常量名,值[,bool]);
            如: define("PI",3.14);
            使用: echo PI;
          要求: 常量名必须全部大写
          目的:1.便于记忆  2. 便于理解
              
         系统中常用常量:
           
    常用函数:
        gettype();获取一个变量的类型
        *unset();  销毁一个变量
        *isset();  判断一个变量是否存在
        *empty();  判断一个变量是否不存在。
        *var_dump(); 格式化输出指定变量信息(包含类型)
        is_bool():判断是否是布尔型
        is_int()、is_integer()和is_long():判断是否为整型。
        is_float()、is_double()和is_realq
        *is_array():判断是否为数组
        *is_object():判断是否为对象
        is_resource():判断是否为资源类型
        is_null():判断是否为null
        is_scalar():判断是否为标量
        *is_numberic():判断是否是任何类型的数字和数字字符串
        is_callable():判断是否是有效的函数名
          
          
    计算机的位的换算
      
        1T=1024G    1G=1024MB   1MB=1024KB   1KB = 1024B(字节)  1B(字节)=8b(位)
          
        二进制:0000 0000~1111 1111   十进制:-128~127
          
=========================================================      
    8. PHP的运算符
        8.1 算术运算符:+ - * /  %(取模/求余) ++ --
        8.2 字符串运算符 . .=
        8.3 赋值运算符  = += -= *= /= %= .=
        8.4 比较运算符 > < >= <= <> != == === !==
        8.5 逻辑运算符:逻辑与:and &&   逻辑或 or || 逻辑非 not !  异或:xor
                其中逻辑与和逻辑或都具有短路效果。(短路与和短路或)
        8.6 位运算符:& | ^  << >>
        8.7 其他运算符:?:  ``  @  => -> instanceof
        8.8 运算符的优先级
      
9、 可变变量和引用赋值
---------------------------------------------------
    1. 可变变量:就是变量的名字还是一个变量。
        $a="xiaoyao";
        $name="wangyuan";
        echo $$a; //变量的名字还是一个变量时就是可变变量,$a等价于name,即 $$a等价于$name
          
    2. 引用赋值:(相当于起别名)指针赋值,使用"&"符号
        $m=10; //定义一个变量m值为10;
        $n=&$m; //将m的值所在的内存地址给了变量n(引用方式赋值,也叫起别名)
        $n=20; //将变量n的值改为20
        echo $m; //输出变量m的值:20
          
                    ,