1+X PHP知识

#PHP技术与应用

##第一章  网站介绍

###第一节 动态网站

概念:

    误区:不是指网站当中包含动态图片、滚动图等动态效果。
    正解:采用数据库技术开发的网站,网页上的内容都是通过数据库提取出来动态更新的。

### 第四节 环境配置

集成环境:
    要想使用这门语言,需要搭配相应的开发环境,主要包括:
        Apache web服务器
        MySQL 数据库
        PHP 语言引擎
以上三个模块可以分别安装,在进行相关的配置(手动安装配置相对复杂)。通常使用以上三者的集成环境进行快速部署:

WAMP: Window操作系统
LAMP: Linux操作系统
MAMP: 苹果MAC操作系统

以上三个集成环境针对不同操作系统,下载安装后,开发环境就已经自动搭建好了。

###运行原理:

get请求:从服务器上获取数据
post请求:向服务器提交数据

###配置文件:

配置文件是每一项服务的核心,配置文件缺失或修改错误,将导致服务无法正常运行

    Apache服务配置文件:D:\wamp64\bin\apache\apache2.4.23\conf\httpd.conf
    MySQL服务配置文件: D:\wamp64\bin\mysql\mysql5.7.14\my.ini
    PHP模块配置文件:      D:\wamp64\bin\apache\apache2.4.23\bin\php.ini
注意:配置文件修改后,必须重启服务

###WWW目录

www目录在wamp目录下,是网站的根目录,开发的所有文件,都要放在www目录中,通过浏览器输入localhost访问本地服务器

###localhost

本地服务器,安装了wamp软件的你的电脑,既是客户机,又是服务器,通过浏览器访问的是你本地的服务器,故名称为localhost

##第二章 PHP语言基础

###第一节 hello world

###  ###PHP标记符、注释、数据类型、数据输出、编码规范、变量、常量、运算符、数据类型转换、控制语句、数组、函数

###语言标记

    <?php
        ......
    ?>

注意:纯php脚本文件要求: 1、开始标签要在第一行顶头写。 2、删除结束标签。

###注释符与结束符

    //单行注释
    /*多行注释*/
    //结束符用英文符号";"
    $hello="hello world";

###常用命令和系统函数

echo
echo输出:只能输出字符串、数字、布尔(true:1 false:空)类型的数据

var_dump
此函数显示一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构
**注意**:var_dump中的变量必须是存在的,如果变量存在但值是空,则返回false没有变量时,则返回NULL该函数有输出的功能,因此不必加其他的输出函数

requireinclude
1、require
    常用与引入重要文件,若引入失败会直接影响到当前整个脚本,引入失败则报Error错误
2、Include
    常用与引入普通文件,若引入失败不会对当前脚本有较大影响,引入失败报Warring错误
3、require_once
    避免重复引入,其他规则同require
4、include_once
    避免重复引入,其他规则同include

header
用于定义HTTP协议头信息。

###第二节 变量与常量

变量

声明变量: $

命名规则:字母数字下划线、首字母不能为数字、严格区分大小写、且不能使用关键字!推荐使用驼峰命名法

变量销毁:unset(变量名),被销毁的变量在内存中被释放

引入变量

    $man = 'zhangsan';
    $student = &$man;  //用&引入

常量:
    使用define关键字定义常量,常量命名要全部大写,常量的数据类型不能是资源、对象

    //定义常量
    define('SCHOOL','清华大学');

变量与常量的差异

    差异          变量                      常量
    定义            $声明                    define()定义
    命名            大小写敏感                必须大写(行业规范)
    赋值            可以重新赋值                不能在赋值
    数据类型        8种数据类型                只能是标量
    销毁            unset()销毁                不能销毁
    判断方法        isset()判断是否定义        defined()判断是否定义
    作用域        局部作用域                全局作用域

###第三节  数据类型

**八种数据类型**

四种标量类型
    -布尔型(boolean)
    -整形(integer) 范围:2^32或2^64(超出自动转换为浮点型)
    -浮点型(float)范围:双精度
    -字符串(string)

两种复合类型
    -数组型(array)
    -对象型(object)

两种特殊类型
    -资源型(resource)
    -空型(null)

不同进制

    $number1=0b10;
    $number2=0123;
    $number3=0x123;

对象型
具有一定功能和特征的单个事物,对象是属性和方法的集合

资源型
变量可以是文件夹、一个文件、从数据库中得到的结果集等,操作这个变量,相当于操作这些资源。

NULL型

null也是数据,通常表示一种状态,变量没有任何值,就用null表示。以下情况会得到null:
    直接将一个变量赋值为null
    将一个变量销毁后再次使用该变量
    直接使用一个不存在的变量

###第四节 数据类型转换

自动类型转换

    在特殊运算时,会有自动类型转换的情况
    
    自动转换为:false             自动转换为:true                自动转换为:int                自动转换为:string
    整形:0                    非0整数                        true:1                        true:"1"
    浮点:0.0或0.00            非0浮点数                    false:0                        false:""
    字符串:''或‘0’            非空字符串                    null:0                        null:""
    数组:空数组                非空数组
    null                    对象
    未知变量(或被销毁变量)

强制类型转换

改变原变量类型
    使用settype()函数可以将一个指定变量强制转换为另一种指定类型

不改变原变量类型
    格式:新变量=(指定变量类型)原变量;

    //强制类型转换;不改变原变量类型
    //定义一个存储变量
    $old=1;
    $new; //用于接收转换之后的变量    
    //开始转换
    $new=(Boolean)$old; //true
    $new=(Integer)$old;//1
    $new=(Float)$old; //float 1
    $new=(String)$old; //'1'
    $new=(Array)$old; //Array
    $new=(Object)$sum; //Object

常用变量检测函数

    函数                    说明
    gettype()        判断变量类型;<br/>返回 boolean、integer、double(float返回“double”)、string、array、object、resource、null、unknown type
    isset()            检测变量是否存在
    empty()            判断一个变量是否为空(字符串、数组、0、null)
    其他                判断变量类型的系列函数<br/> isarray()、isbool()、isfloat()、isinteger()、isnull()、isnumberic()、isobjcet()、isrescoure()、istring()和isscalar()是否为标量

常用数学运算函数

    函数名            语法                说明
    rand        rand([int,int])        返回一个随机整数
    mt_rand        mt_rand([int,int])    使用Mersenne Twister算法返回随机整数
    abs            abs(mixe)            返回数字的绝对值
    min            min(array) min(mixed,mixed,[,...])        返回最小值
    max            max(array) max(mixed,mixed,[,...])        返回最大值
    round        round(float[float[,int[,int]]])        四舍五入
    floor        floor(float)            舍去小数部分取整
    ceil        ceil(float)            小数部分非零返回整数部分就加1
    pow            pow(mixed,mixed)    返回base的exp次方的值
    sqrt        sqrt(float)            返回平方根
    sin            sin(float)            返回正弦值
    cos            cos(float)            返回余弦值
    tan         tan(float)            返回正切值
    deg2rad        deg2rad(float)        将角度转换为弧度
    bindec        bindec(string)        二进制转十进制
    decbin        decbin(int)            十进制转二进制
    octdec        octdec(string)        八进制转十进制
    decoct        decoct(int)            十进制转八进制
    hexdec        hexdec(string)        十六进制转十进制
    dechex        dechex(string)        十进制转十六进制
    exp            float exp(float arg)    返回e的arg幂次值,e为自然对数的底数,值为2.718282
    pi            float pi(void)        返回圆周率的值

##第五节  字符串

    三种定义方式
    
    单引号                        双引号                            定界符
    不支持解析变量                支持解析变量,不支持表达式            同双引号
    不能插入单引号                不能插入双引号                    可以插入双引号和单引号
    只能转义 反斜杠 和 单引号        支持解析转义字符(\n \t \s等)        同双引号

    $num=10;
    
    //单引号
    $title='hxsd'.$num.'beijing';

    //双引号,支持解析变量,不能解析表达式。
    $school="<div id='box'><h1>{$hxsd}</h1></div>";

    //定界符,可以任意取名。
    $str2 = <<<mark
    <div id="box">
            <h1 calss="main">{$hxsd}</h1>
    </div>
    mark;

    //注意-------------------
    //定界符中可以使用单、双引号,可以解析变量
    //定界符中的字符串、会保留所有格式,八艘阔各种空格(尽量定格写,避免开始的空格)
    //结束标记一定要顶格写
    //开始,结束标记(上面代码中的"mark")后不能再有空格等字符(包括注释语句也不能有)

    //字符串支持折行,注意:折行会多一个空格
    $txt="abcdef
    gggg";        //显示结果:abcdef gggg

常用字符串操作函数
    
    函数                            功能
    trim()                    去除字符串首尾空白等特殊符号或指定字符序列    
    strtolower()            转换为小写
    strtoupper()            转换为大写
    htmlspecialchars()        格式化字符串中的html标签
    strip_tags()            函数剥去HTML、XML以及PHP的标签
    md5()                    计算字符串的MD5散列值
    strlen()                字节长度utf8编码 西文:1字节 汉字:3字节
    mb_strlen()                字符个数
    substr()                字符串截取函数(中文乱码)
    mb_substr()                字符串截取函数(中文不乱码)
    strstr()                查找字符串的首次出现,开始向后截取全部,并返回
    strpos()、stripos()        查找字符串在另一字符串中第一次、最后一次出现的位置(不区分大小写)
    strrpos()、strripos()    同上(区分大小写)
                            翻转字符串
                            按字节来比较字符串
    str_replace()            字符串替换函数
    str_repeat()            重复一个字符串
    Itrim()、trim()、rtrim()    去除左侧、两侧、右侧多余字符(默认删除空格)
    explore(符号、字符串)        字符串→数组
    implode(符号,数组)        数组→字符串
    md5()、sha1()            字符串加密

##第六节  数组

###数组类型

关联式数组,下标为有意义的字符串
索引式数组,下标为默认从0开始的数值

###定义数组

直接赋值方式定义

    $a[]=10;
    $a[]=20;
    $a['name']='张三';
    $a['sex']='男';

使用array()函数

    $b=array(10,20,30);
    $b=array('name'=>'张三';'sex'=>'男';'age'=>'28');

    快捷赋值
    $c=[10,20,30];
    $c=['name'=>'张三';'sex'=>'男';'age'=>'28'];

二维数组与多维数组
    
    //二维数组
    $group=array(
        'one'=>array('张三','李四','王五'),
        'two'=>array('赵六','孙七')
    );
        
    //定义一个三维数组
    $class=array(
        'class01'=>array(
            'one'=>array('张三','李四','王五'),
            'two'=>array('赵六','孙七')
        ),
        'class02'=>array(
            'one'=>array('张三','李四','王五'),
            'two'=>array('赵六','孙七')
        )
    );

    //获取李四
    echo $calss['class02']['one'][1];

###数组的遍历

    for循环遍历
    $arr=[11,22,33,44,55];
    for($i=0;$i<count($arr);$i++){
        var_dump($arr[$i]);
    };

    //foreach
    $f_arr=['name'=>'zhangsan','age'=>'18','sex'=>'m'];
    foreach($f_arr as $key=>$value){
        echo $key."."$value."<br>";
    };

    //list (只用于索引数组)
    list($a,$b,$c,$d,$e)=['1','2','3','4','5'];
    echp $a,$b,$c,$d,$e;

###数组的输出

    $b = 3.1;$c=TRUE; var_dump($b,$c);

    /*输出 float(3.1)bool(true)*/

###复制数组

    $arr1=[111,222,333];
    $arr2=$arr1;  //$arr2是个新数组
    var_dump($arr2==$arr1);//false

    //用&引用数组
    $arr3=&$arr1;
    var_dump($arr3===$arr1)//true

###数组常用函数

    函数                                                        功能
    array_values()                            数组中所有的值放入一个新的索引数组,并返回
    array_keys()                            数组中所有的键放入一个新的索引数组,并返回
    array_reverse()                            颠倒数组顺序
    in_array(元素,数组)                        检查数组中是否存在某个值
    count()                                    计算数组中的单元数目 或 对象中的属性个数
    array_unshift()                            在数组开头插入一个或多个元素
    array_push()                            在数组结尾插入一个或多个元素
    array_unique()                            移除数组中重复的值
    array_pop()                                删除数组最后一个元素
    array_shift()                            删除数组开头的元素
    array_splic(数组,索引,数量)                删除指定元素(<br/>删除元素后,会重排数组索引,用unset删除不会重排数组索引)
    sort()                                    排序(升序)
    rsort()                                    排序(降序)
    array_merge()                            合并一个或多个数组

###数组转JSON

    函数                            说明
    json_encode(数组)            JSON格式编码(参数必须是utf8编码,否则会得到空字符或者null)
    json_decode(字符串,参数)        对JSON格式的字符串进行解码,参数:<br/>true:返回数组<br/>false:返回 对象


##第七节 运算符

    类型                    运算符
    算术运算符            + - * / %
    赋值运算符            = += -= *= /= %= .=
    比较运算符            > >= < <= != !== == ===
    逻辑运算符            && || not and or
    字符串运算符            .
    其他运算符            三元运算符==? :
    错误抑制符            @
    提升优先级符号        ()    


#第三章 流程控制

##第一节  分支结构

单一分支结构
    
    //判断你是否长得帅
    $face='帅';
    
    //开始判断
    if($face=='帅'){
        echo '你真是帅呆了,酷毙了';
    }

双向分支结构

    //开始判断
    if(true){
        echo "ok";
    }else{
        echo "no";
    }

多向分支结构一

    //学生成绩管理系统
    $score=100;

    ///判断学生成绩在那个分数段

## 循环结构

while循环

    While(条件表达式)
    

猜你喜欢

转载自www.cnblogs.com/lijian-cn/p/11941187.html