php基础

作者: 4e855d444c9f | 来源:发表于2017-11-14 10:58 被阅读0次

    [if !supportLists]1.[endif]PHP基础(变量的八种类型、emptyissetnull、变量类型的自动和强制转换、常量、运算符(算术、比较、逻辑、三元运算符)

    1.变量的八种类型

    整型,字符串,浮点型,布尔型,数组,面向对象,资源,null

    [if !supportLists]1.[endif]Empty

    如果参数是非空或非零的值,则返回false,反之则为true。

    emptytrue的情况

    00.0“”空字符串“0”字符串零falsenullarray()空数组

    没有任何属性的对象

    2.

    isset检测变量是否设置

    3.

    unset释放给定的变量

    4.

    null空变量

    三种情况为null

    1.直接赋值为null

    2.被unset销毁的变量

    3.为被赋值的变量

    2.变量类型的自动和强制转换

    1.自动转换

    1).布尔值true自动转换1,false自动转换为0或空

    2). Null自动转换0

    3).如果字符串首字符不是数字,那么就转换为0,再参与运算

    2.强制类型转换有三种方式

    第一种方式(int)(float)(string)(bool)

    第二种方式intval(变量)floatval(变量)strval(变量)

    第三种方式settype(变量,变量类型);

    3.常量

    1.定义一次,就不能改变它的值

    2.定义常量define('常量名(要大写)',)

    3.判断常量是否被设置defined(‘常量名’)

    4.运算符(算术、比较、逻辑、三元运算符)

    1.算术运算符+-*/%++--

    ++$i前加加先自增再赋值

    $i++后加加先赋值再加加

    2.字符串连接符(.)

    3.赋值运算符

    把值赋给变量(=)

    字符串拼装的作用(.=)

    4.比较运算符

    等于( == )

    全等于( === )不仅仅考虑值相等,变量的类型也要相等

    5.逻辑运算符

    逻辑或||or:符号两边只要有一边为true,结果则为true

    逻辑与&&and:符号两边都为true,结果才为true

    逻辑非(取反)!

    注:逻辑运算符短路问题

    1).当逻辑与&&判断时,符号左边如果为false,则不会继续执行符号右边的

    $a = 1;

    if($a ==2 && $a++){

    echo $a;//什么都没有

    }

    echo $a;//输出1

    2).当逻辑或||判断时,符号左边如果为true,则不会继续执行符号右边的

    $a = 1;

    if($a == 1 || $a++){

    echo $a;//输出1

    }

    6.位运算符

    1).按位与&两边都是1,结果才为1

    $a = 10;// 01010

    $b = 20;// 10100

    //----------------------

    //00000

    echo $a&$b;//输出0

    2).按位或|两边都是0,结果才为0

    $a = 10;//

    01010

    $b = 15;// 01111

    //---------------------

    //01111

    echo $a|$b;//输出15

    7.三元运算符(? :

    $a = '哇哈哈'

    $str=($a=='哇哈哈')?'哇哈哈':'阿童木';

    echo $str//输出哇哈哈

    注:三元运算符中不能加echo

    2PHP语句(ifelseswitchwhiledo...whileforbreakcontinueexitdie)

    1.单一分支结构

    If(满足条件也就是转化为bool型true){

    //执行大括号里的代码块

    }

    2.双向条件分支结构

    if(empty($a)){//true执行下面的代码如果为false执行else区间的代码

    echo '男';

    }else{

    echo '女';

    }

    3.switch开关的意思判断字符串或者整型浮点型只能判断是还是不是

    $a = '3';

    switch($a){

    case '5':

    echo '5';

    break;//跳出代码块

    case '6':

    echo '6';//后不加break,会穿透执行

    break;

    default://默认选项当前面的选项都不满足的时候默认执行此代码

    echo '哇哈哈';

    }

    4.for循环(九九乘法表)

    //正序的九九乘法表

    for($i=1;$i<=9;$i++){//初始值0;范围小于5;步长1;

    for($j=1;$j<=$i;$j++){

    echo $j.'x'.$i.'='.$i*$j."\t";//会输出这样格式的1x1=1等。。。

    }

    echo'
    ';

    }

    //倒序的九九乘法表

    for($i=9;$i>0;$i--){

    for($j=$i;$j>0;$j--){

    echo$i.'x'.$j.'='.$i*$j."\t";//会输出这样格式的9x9=81等。。。

    }

    echo'
    ';

    }

    5.while只有条件满足,才会执行(九九乘法表)

    //正序的九九乘法表

    $i=1;

    while($i<=9){//满足小括号里的条件才会执行代码块

    $j=1;

    while($j<=$i){

    echo$j.'x'.$i.'='.$i*$j."\t";//会输出这样格式的1x1=1等。。。

    $j++;

    }

    echo'
    ';

    $i++;

    }

    //倒序的九九乘法表

    $i=9;

    while($i>0){

    echo '
    ';

    $j=$i;

    while($j>0){

    echo$i.'x'.$j.'='.$i*$j."\t";//会输出这样格式的9x9=81等。。。

    $j--;

    }

    $i--;

    }

    6.do...while不管条件满不满足,先执行一遍再说

    $i=0;

    do{//先执行大括号里的代码再说,再去判断while满不满足满足就继续执行不满足,终止执行

    echo '阿萨姆';

    }while($i>1);

    7.breakcontinueexitdie

    break满足条件,终止执行

    continue跳过满足的条件,继续执行

    exit无条件终止执行

    die函数是exit函数的别名

    3PHP函数(函数的声明和调用、局部变量和全局变量、静态变量、可变变量函数、回调函数、递归函数)

    1.函数的声明和调用

    函数完成一定功能按特定格式组织一段代码,参数传进去值返回,相同的代码可以声明一次无限次调用。函数名不能重名,也不能和系统函数同名,命名规则遵循变量的命名规则。

    函数的声明function函数名(参数1,参数2,参数3){//形参}

    函数的调用函数名(//实参);

    函数的返回值1.可以向函数调用者返回函数体中【任意确定】的值

    2.退出函数,也是终止执行下面的函数

    注:形参和实参的顺序是对应,不可打乱,也不可少一或多一个。

    2.局部变量和全局变量、静态变量

    [if !supportLists]1.[endif]局部变量

    也叫内部变量,仅限于函数内部。离开function{

    }外输出会报注意【Notice】

    [if !supportLists]2.[endif]全局变量

    也叫外部变量,从变量定义处开始,到本程序文件的末尾

    [if !supportLists]1.)[endif]global全局的意思,第一种【注意格式的不同】

    $a=987654321;

    functionalala( ){

    global $a;

    echo $a;

    }

    alala();//不用输出$a

    [if !supportLists]2.)[endif]$GLOBALS全局的意思第二种【注意格式的不同】

    $b=654;

    functioncaca( ){

    $GLOBALS

    ['b'];//没有$符

    }

    caca();

    echo $b;//要输出$b

    3.静态变量

    函数里重复使用,不会被销毁的,会有专门的一份内存来保存变量,静态的内存

    function jing( ){

    static $a=6;

    echo '——'.$a;

    $a++;

    }

    jing();//输出6,不是7(因为前++还是后++;都是从上至下执行,都输出6)

    jing();//输出7

    jing();//输出8

    [if !supportLists]3.[endif]各种形式的php函数

    [if !supportLists]1.[endif]赋值传值

    就相当于复制文件,修改当中一个文件,并不会影响它自身的内容。

    [if !supportLists]2.[endif]引用传值

    就相当于创建快捷方式,修改其中一个,两个都会改变,也属于局部变量

    function test(&$num){//使用引用变量,将一个&加到将要赋值的变量前

    echo $num;

    }

    test(2);

    [if !supportLists]3.[endif]可变参数的个数

    function more_args(){//可变参数的个数

    $args=func_get_args();//获取函数的可变参数,它是一个数组

    for($i=0;$i

    echo '第'.$i.'个参数是'.$args[$i].'
    ';//输出第一个是one等。。。

    }

    }

    more_args('one','two','three',1,2,3);

    4.可变变量以一个变量的值作为另外一个变量的名

    $a = 'hello';

    $hello ='world';

    $world ='perfect';

    echo $$a;// world;

    echo $$$a;// perfect

    [if !supportLists]4.[endif]回调函数

    回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应

    //程序是自上往下执行一定要执行完才会继续

    functionone(){

    echo 'one';

    two();

    echo 'one';

    }

    functiontwo(){

    echo 'two';

    three();

    echo 'two';

    }

    functionthree(){

    echo 'three';

    }

    one();//输出onetwothreetwoone

    call_user_func()把第一个参数作为回调应用

    function wahaha($num){

    echo'wahaha'.$num;//输出wahaha4

    }

    call_user_func('wahaha',4);//也能执行函数的调用间接调用

    call_user_func_array(被调用的回调函数,要被传入回调函数的数组(索引数组))

    调用回调函数,并把一个数组参数作为回调函数的参数

    [if !supportLists]5.[endif]递归函数

    递归函数,函数本身自己调用自己,任何语言都有,地位还比较重要,可遍历文件夹、商品分类

    1.阶乘

    function jiecheng($num){

    if($num>1){

    return$num*jiecheng($num-1);

    }else{

    return1;

    }

    }

    echo jiecheng(5);//输出120

    //执行顺序

    //return 5*jiecheng(4)

    //5*4*jiecheng(3)

    //5*4*3*jiecheng(2)

    //5*4*3*2*jiecheng(1)

    //5*4*3*2*1 = 120

    2.斐波尼奇数列

    function shulie($num){

    if($num==1||$num==2){

    return1;

    }else{

    returnshulie($num-1)+shulie($num-2);

    }

    }

    //1123581321….

    echo shulie(7);//输出13

    4、数组(数组的分类定义、遍历数组的四种方式、预定义数组、常用的数组函数、冒泡算法)

    数组的定义

    1.索引数组:下标是顺序的整数作索引。

    $array=array('a','b','c');

    $array[]='simon';

    print_r($array);

    ?>

    [if !supportLists]2.[endif]关联数组:下标是字符串作索引。

    $a=array(key1=>value1,key2=>value2,key3=>value3);

    3.$a[key1]=value1;$a[key2]=value2;

    4.通过中括号[ ]定义数组

    $data= ['start_time'=> '123','end_time'=>'456'];

    遍历数组的四种方式

    预定义数组

    [if !supportLists]1.[endif]服务器变量$_SERVER$_SERVER是一个包含诸如头信息、路径和脚本位置的数组。数组的实体由web服务器创建,并不能保证所有的服务器都能产生所有的信息,服务器可能忽略了一些信息,或者产生了一些其他的新的信息。和其他的超全局数组一样,这是一个自动的全局变量,在所有的脚本中都有效,在函数或对象的方法中不需要使用global关键字访问它。

    [if !supportLists]2.[endif]$_ENV环境变量:数组中的内容是在PHP解析器运行时,从PHP所在服务器中的环境变量转变为PHP全局变量的。它们中许多都是由PHP所运行的系统决定的,完整的列表是不可能的,需要查看PHP所在服务器的系统文档以确定其特定的环境变量。

    [if !supportLists]3.[endif]URL GET变量:$_GET数组也是超全局变量数组,是通过URL GET方法传递的变量组成的数组。它属于外部变量,即在服务器页面中通过$_GET超全局数据获取URL或表单的GET方式传递过来的参数。

    [if !supportLists]4.[endif]HTTP POST变量$_POST:数组是通过HTTP POST方法传递的变量组成的数组。$_POST和$_GET数组之一都可以保存表单提交的变量,使用哪一个数组取决于提交表单时在表单form标记中的method属性使用的方法是post还是get。但是使用$_POST数组只能访问以post方法提交的表单数据。

    [if !supportLists]5.[endif]HTTP文件上传变量$FILES:使用表单的file输入域上传文件时,必须使用post提交。但在服务器文件中,并不能通过$_POST超全局数组获取到表单中file域的内容。而$_FILES超全局变量是通过post方法传递的已上传文件项目组成的数组。$_FILES是一个二维数组,包含5个子数组元素,其中第一个下标是表单中file输入域的名称,第二个下标用于描述上传文件的属性。

    [if !supportLists]6.[endif]HTTPCOOKIES:$_COOKIE超全局数组是经由HTTP

    Cookies方法提交至脚本的变量。通常这些Cookies是由以前执行的PHP脚本通过setCookies()函数设置到客户端浏览器中的,当PHP脚本从客户浏览器提取了一个cookie后,它将自动把它转换成一个变量,可以通过这个$_COOKIE超全局数组和cookie的名称来存取指定的cookie值。

    [if !supportLists]7.[endif]Session变量:会话控制是在服务器端使用session跟踪用户,当服务器页面中使用session_start()函数开启session后,就可以使用$_SESSION数组注册全局变量,用户就可以在整个网站中访问这些会员信息。

    [if !supportLists]8.[endif]GLOBAL变量:$GLOBALS是由所有已定义的全局变量组成的数组,变量名就是该数组的索引。

    常用的数组函数

    见文档

    冒泡算法

    /*冒泡算法

    * @para $arr传人进去排序的数组

    * @return $newArr排序之后的数组

    */

    functionmaopao($arr){

    //一共是多少趟

    for($i= count($arr)-1; $i>0; $i--){

    $flag= 0;

    //每一趟进行相邻两个数进行比较

    for($j= 0; $j< $i; $j++){

    if($arr[$j]>$arr[$j+1]){

    $temp= $arr[$j];

    $arr[$j]

    = $arr[$j+1];

    $arr[$j+1]

    =$temp;

    $flag= 1;

    }

    }

    if($flag== 0){

    break;

    }

    }

    return$arr;

    }

    $arr=array(30,40,10,50,20,60);

    print_r(maopao($arr));

    ?>

    5、字符串(字符串函数)

    见文档

    [if !supportLists]6.[endif]正则表达式

    [if !supportLists]7.[endif]会话控制

    [if !supportLists]8.[endif]文件(目录和文件的操作、遍历目录、文件上传、多文件上传、下载)

    [if !supportLists]9.[endif]GD库、新分使输销、验证码

    [if !supportLists]10.[endif]mysql数据库(增删改查、关联查询、php处理mysql的函数)

    [if !supportLists]11.[endif]项目登录、注册、商品、用户、分页功能

    [if !supportLists]12.[endif]PHP面向对象、常用的四个类

    [if !supportLists]13.[endif]Smarty

    [if !supportLists]14.[endif]Pdo

    [if !supportLists]15.[endif]异常处理

    [if !supportLists]16.[endif]Mvc

    [if !supportLists]17.[endif]Thinkphp3.1

    [if !supportLists]18.[endif]Linux

    相关文章

      网友评论

          本文标题:php基础

          本文链接:https://www.haomeiwen.com/subject/nqexvxtx.html