php学习笔记1——php基础

来源:互联网 发布:青苹果申报数据库 编辑:程序博客网 时间:2024/06/17 13:16

php简介和安装(windows环境)

1,PHP:Hypertext Preprocessor,超文本预处理器2,HTTP:Hypertext Transfer Protocol, 超文本传输协议    >>>建立连接,发送请求,给出应答,关闭连接    常见状态码:200,400,401,403,404,500,5033,LAMP:Linux,Apache,MySQL,PHP  LNMP:Linux,Nginx,MySQL,PHP  WAMP:Windows,Apache,MySQL,PHP
4,PHP环境搭建    分布搭建(win下):    Apache下载安装,更改配置文件>>Apache/bin/conf/httpd.conf                    >>更改php根目录:DocumentRoot ""  Dirctory ""                    >>更改本地服务器名称:ServerName localhost:80;    PHP下载安装,更改配置文件>>php/php.ini                    >>放开extension_dir = "ext",打开扩展库>>转到888行左右放开相应的ext    再回到Apache/bin/conf/httpd.conf再文件尾加入:        LoadModule php5_module "../php/php5apache2_4.dll"  //php目录下找        AddHandler application/x-httpd-php .php        PHPInDir  "../php"   //php安装的根目录5,集成环境:Wampserver,XAMPP,PHPStudy,等    Wampserver下载安装,更改根www目录同上Apache        配置虚拟目录>>wamp64/bin/apache/apache2.4.23/conf/extra/httpd-vhost.conf                    复制粘贴添加新的配置:ServerName test.com  //或其他英文名                                        DocumentRoot D:../..                                        Directory "D:../.."                    添加本地IP到win,>>C:windows/system32/drivers/etc/hosts                                文件尾添加:127.0.0.1    test.com
6,php的标记风格(插标)   <?php         echo <<<AAA  a,XML风格<?php    ?>    b,shell(脚本)风格<script language="php">    </script>    c,简短风格<?    ?>//需要在php.ini里更改short_open_tag = off 为on    d,ASP标记风格<%    %>//需要在php.ini里更改asp_tags = off 为onAAA   ?>
7,PHP注释: //        c++风格                #         shell风格                /*   */c  多行注释风格8,编码规范:DRY原则,Do not repeat Yourself        命名规则:变量,有意义的英文单词,之间可用_连接                函数,同上,运用小驼峰,首词小写,后面每词首字母大写                类,同上,运用大驼峰,首词大写,后面每词首字母大写        注意缩进和留白:嵌套要缩进,避免3层以上嵌套,                    各功能区空行留白                    参数间,后空一格        验证不可少:前端要验证,后端也要验证,输出也要验证        合理使用缓存机制,适当使用框架

php基础1

9,数据类型
标量数据类型:     Boolean,布尔型,TRUE or FALSE (true false)                     String,字符串型,   单引号''      不解析变量,把变量名原样输出(理论上速度比双引号快)                                        双引号""      解析变量,输出变量值                                        <<<FFF     //相当于多行双引号("")                                        FFF;       //单独占一行,且前后不能有多余的空格                                        转义字符,\' \n \r \t \" \% ...                      Integer,整型(int),有符号整数  //php中没有无符号整数                     Float,浮点型,浮点型数(有小数点或者E)    复合数据类型:     array,数组,一组数据的集合(可以是任何数据,包括数组),组成要素,索引(下标/键名)———元素                            $arr=array(1,2,3,'bb');         //不指定键名,索引从0开始                            $arr=arry('key'='value','key'='value'...tec)  //指定键名                            $arr[key]=value;    //同上                     object,对象,类的一个实例化                            class Gun{                            }                            $obj= new Gun();   //定义一个类的对象    特殊数据类型:     resource,资源,保存外部资源的一个引用的变量,如打开文件/图形画布等                     null,空值    没有赋初始值的变量                                  赋值为null的变量                                  被内置函数unset()处理了的变量
10,数据类型的转换
自动转换:标量数据类型参与类型时,PHP解析器会根据实际情况自动转换    强制转换:使用PHP运算符或内置函数强制改变变量数量类型            函数:     intval($var);         //强制转换为整型(取整)                      floatval($var);       //强制转换为浮点型                      stringval($var);      //强制转换为字符型                          settype($var,type);   //type为目标数据类型                      unset($var);          //转为null,销毁变量            运算符:     (int/integer)$var;                        (float)$var;                        (string)$var;                        (bool/boolean)$var;                        (array)$var;                        (object)$var;    类型检测:var_dump($var);        //打印变量的详细星星            is_bool($var);            is_int($var);            is_float($var);            is_string($var);            is_array($var);            is_object($var);            is_null($var);                      is_numeric($var);       //判断变量是否为数字(字符型的数字也行)
11,常量,用于存储程序中不变的数据
    使用函数define()来声明,声明后值不可改变,常量名必须以下划线或字母开始,不需要$符,区分大小写,一般全字母大写       bool define(sting$name,mixed$value [,bool$case]);  //bool$case ,true or false,true对大小写不敏感,反之则反,默认false       eg:  define(FILENAME,'huwhois');     //定义常量FILENAME,值为huwhois,对大小写敏感    使用函数defined()来判断是否定义为常量 defined(FILENAME);  //判断FILENAME是否定义为常量了,返回值为true or falsephp常见的预定义常量(可以直接拿来用):
<?phpecho "__FILE__,当前文件的路径:".__FILE__.'
';echo "__LINE__,当前PHP程序的行数:".__LINE__.'
';echo "PHP_VERSION,当前PHP的版本:".PHP_VERSION.'
'; echo "PHP_OS,当前PHP使用的操作系统:".PHP_OS.'br';echo "Boolean值:TRUE FALSE
";echo "E_ERROR,php错误的级别代码:".E_ERROR.'
'; echo "E_WARNING,警告的级别代码:".E_WARNING.'
'; echo "E_ERROR,语法解析有潜在问题处的级别代码:".E_PARSE.'
'; echo "E_NOTICE,该常量为发生不寻常,但不一定是错误处的级别代码:".E_NOTICE.'
'; ?>12,变量,用于存储程序中值可以改变的数据
   $Name [=value];    变量名前要加$符    变量名必须以字母或下划线开头,后面可跟字母/下划线/数字    变量名区分大小写    变量名不允许与系统内建变量/函数/常量等同名a,变量赋值方式:    直接赋值,使用赋值号 =   //$a = 5;    传值赋值,将一个变量的值赋值给另一个变量(传一个副本) //$b=$a  ==>>$b=5    引用赋值,将一个变量的内存空间和另一个变量共享(家也给了)          //$a=5, $c=&$a, ==>>$c=5; 若$c值改变了,$a也跟值一起变        但使用unset()函数销毁其中一个时,另一个不受影响,有福同享,有难不当b,变量的作用域,即变量起作用的范围,主要是根据他们的声明方式和为孩子决定的    1,局部变量,声明在某范围的变量,只在其声明范围内起作用,如函数体里的内部变量        2,全局变量,使用关键字global定义,可在广泛范围内使用    3,静态变量,使用关键字static定义,制作用在函数域内,函数结束后不会释放,而会保存最后一次调用的值,等待函数下次被调用时使用    4,可变变量,即多个$组在一起,变量名由其他变量的值确定c,php预置变量,又称超级全局变量,系统定义的,可直接使用,以数组形式存储相关信息,详见数组
13,运算符,即变量执行算术/逻辑运算的符号,也成操作符
    算术运算符:非数值型参与运算时PHP先转换为数值型        +   -   *   /   %  ** 从左到右(左联)        ++      --      从右到左(右联),变量先做其他运算,再自加    字符串运算符: (.)    赋值运算符:右联,左边为变量名,右面右表达式或常量        =   +=  -=  *=  /=   %=  .=    比较运算符:又称关系运算符或条件运算符,用于判断操作数的关系,返回布尔值(TRUE or FALSE)        ==  === !=  <>  !== >   <   >=  <=     逻辑运算符:用来判断逻辑表达式的真假,操作数为boolean,返回也是boolean        and &&  or ||   not !   xor(亦或)    三目运算符: exp1?exp2:exp3   //exp1为真则执行exp2否则执行exp3    运算符优先级:特殊运算符>算术运算符>比较运算符>逻辑运算符>赋值符        运算符优先级相同则由运算符的结合方向决定运算先后        没有结合行的同级运算符不能对一个操作数使用        圆括号有最高优先级,适当加圆括号可是运算表达式更清晰
14,流程控制,即程序执行的顺序控制(执行跳过选择等)
    顺序结构,按先后从上到下执行,语句只执行一次    分支结构,根据条件判断执行那些语句块        单分支, if(expression){                    statement               }        多分支, if(expression){                    statement1                }else{                    statement2                }        多重分支,if(expression1){                     statement1                }elseif(expression2){                     statement2                }......else{ statement3}        分支嵌套, if(expression0){                     if(expression1){                         statement1                        }                 }else{                     if(expression2){                         statement2                        }                 }        多分支选择         switch(exoression){         //表达式为整型或字符            case 常量1; statement1;            break;            case 常量2; statement2;            break;            case 常量3; statement3;            break;            case 常量4; statement4;            break;            ...            default; statementn;            break;        }              
15循环结构,主要有条件表达式和执行语句组成,且必须有结束条件
    条件循环,while,常用于循环次数不知的时候        while(expression){            statement;      //必须要有结束条件        }    while循环也可以嵌套多层,但一般不会嵌套多层        do{            statement;          }while(expression);    do while循环基本同while,但至少会在判断前执行一次体内语句    计数循环,for循环        for (initalization,con-expr,++/-- ){            statememt;        }    foreach循环,一般用来遍历数组和对象,配合关键字as使用        for($aaray as $key=>$val){            echo $key.'-----'.$val;        }使用循环写乘法口诀    $i=1;    while($i<10){        $j=1;        while{            echo $j.'*'.$i.'='.$j*$i;        }        $i++;    }    for($i,$i<10,$i++){        for($j,$j<10,$j++){             echo $j.'*'.$i.'='.$j*$i;        }    }    跳转结构        break 跳出当前循环,执行循环外语句        continue 跳过本次循环,执行下一次循环
16,函数,被命名的独立代码块,返回一个结果
    自定义函数,使用关键字function命名        function fuc_name( arguments ){                函数体                return r_value;        }    函数命名规则,以字母下划线开头,后面可跟字母数字下划线            不可与系统函数名重名            函数名不区分大小写    函数只有调用时才会执行,return的值给调用的地方    函数需要先定义才调用    参数列表(argument)由0个一个或多个表达式组成,之间用逗号隔开        形参是函数定义时,函数名后面跟着的参数        实参是函数调用时,函数名后面跟着的参数    参数传递方式,按值传递,参数把函数外变量值的副本(即复制)给函数体用,函数体内操作不会改变函数外的变量                按引用传递,参数把函数外变量的内存地址共享给函数体使用,函数体内操作会改变外部的变量                默认值传递,即给形参设置默认值,当没对应实参传进来时,函数调用默认值                        有默认值的形参必须放到参数列表最后                        默认值必须是常量表达式    自定义传参,函数定义时不给形参,调用时函数参数数量不定,函数体类通过以下函数获取参数列表(数组)              func_num_args();  返回参数个数              func_get_arg(n);  返回参数指定位置的参数值              func_get_args();  返回包含所有参数的数组
17,递归函数,在函数体内调用函数本身
function sunm($a){    if($a>0){        return $a+sum($a-1);    }}sum(100);   求0到100的和function test($n){    echo $n;    if($n>0){        test($n-1);    }    ehco $n;}test(5);
18,嵌套函数,是指在一个函数体内又同事调用一个或多个函数,形成函数内外嵌套的关系
    先调用外部函数,才能调用内部函数,内部函数不调用,不执行function start(){    echo "正在开机...\n";    function boot(){        echo "正在加载引导程序...\n";    }    function welcome($user){        echo "欢迎使用本系统\n";    }}start();boot();welcome("aaa");
19,php内置函数库,即内置函数
常见的内置函数    empty(),    检查一个变量是否为空,空返回true,非空返回false    isset(),    检测一个变量是否被设置及值时候不为null,非空为true,空或null为false    gettype(),  获取变量类型    print_r(),  格式化打印标量(一般用来打印数组)    unset(),    销毁一个变量    var_dump(), 打印变量相关信息(位置,类型,值,长度等)    is_numeric(),检测变量是否为数字,或纯数字字符串