zoukankan      html  css  js  c++  java
  • php基础

    PHP
        PHP基本语法
            1、PHP标记:<?php 代码块 ?>
                理解:当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php 和 ?>,这告诉 PHP 开始和停止解析二者之间的代码。
                扩展:PHP允许使用短标记:<? 代码块 ?>。需要将php.ini中的short_open_tag = Off更改为short_open_tag = On
                以前常用的一些PHP标记:
                <script languange="php"> echo'这是脚本风格的标记'; </script> 
                phpinfo():查看php中加载的模块
            2、PHP文件的访问方式:必须在浏览器中输入域名或IP,不然不解析
            3、页面显示乱码:
                header("content-type:text/html;charset=utf-8");
            4、PHP注释:
                单行注释: //
                多行注释: /*   */
                注意:多行注释没有嵌套
            5、可变变量
            6、变量的命名规则(可以包含字母、数字、下划线,只能以字母或下划线开头)
            7、PHP的连接符(.)
            8、拷贝传值、引用传值
        几个小函数
            echo
                输出
            var_dump
                print_r和var_dump都可以输出数组但是print_r中不显示数组元素的数据类型
                描述:打印变量的相关信息
                语法:void var_dump ( mixed $expression [, mixed $... ] )
                说明:此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
            print_r
                描述:打印关于变量的易于理解的信息。
                语法:bool print_r ( mixed $expression )
                说明:如果给出的是 string、integer或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object与数组类似。
            unset
                删除变量unset()
                描述:释放给定的变量、释放空间
                语法:void unset ( mixed $var [, mixed $... ] )
                返回:返回值为空  即不返回
            empty
                描述:检查一个变量是否为空
                语法:bool empty ( mixed $var )
                说明:如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、NULL、FALSE、array()、以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。"0"返回false
            isset
                描述:检测变量是否设置
                语法:bool isset ( mixed $var [, mixed $... ] )
                返回:如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
        数组
            数组的概念
                变量是一个值的容器,数组是多个值的容器。
            数组的两种定义方式
                $arr=array(1,2,3,"abc",5)
                    子主题 1
                $arr=array(’name‘=>"name1",‘age’=>15,....)
            数组的分类
                枚举数组:下标为从0开始的正整数,就是”枚举数组”。如:$arr = array(10,20,30)
                关联数组:下标为字符串的,就是”关联数组”。如:$arr = array(‘name’=>’张三’ , ‘sex’=> ‘男’);
                混合数组:下标既有字符串的,也有整型的,两种下标都有。$arr = array(10,20,’name’=>’Mary’)
                多维数组:数组元素还是数组。$arr = array(array(10,20))
            多维数组
                一个数组元素由两个部分构成:(1)下标(2)数组的值
                下标的类型,只能是整型和字符串型;
                数组元素的值,可以是任何类型(整型、浮点型、字符串型、布尔值、NULL、数组、对象、资源)。
                多维数组:就是数组元素的值,是一个数组。
            数组操作函数:
                1、count()
                    描述:计算数组中的单元数目或对象中的属性个数
                    语法:int count ( mixed $var [, int $mode = COUNT_NORMAL ] )
                    参数:
                        $var,要统计的数组变量名称;
                        $mode可选,是否统计多维数组元素个数。1为统计多维,0只统计当前维数。
                2、unset()
                    描述:释放给定的变量
                    语法:void unset ( mixed $var [, mixed $... ] )
                    说明:也可以删除一个数组元素,也可以删除整个数组。
            数组元素指针的理解
                每一个数组都有一个唯一数组指针;
                数组初始化,指针总是指向第一个元素。
                数组指针,总是指向一个数组元素;
                数组指针,也可以指向数组末端(非法区域)
                如果数组指针指向非法区域,则返回FALSE,foreach循环结束。
            数组指针的函数
                current():返回当前数组指针处元素的值,不移动指针;
                key():返回当前数组指针处元素的下标,不移动指针;
                next():返回下一个数组元素的值,并将指针下移一行;
                prev():返回上一个数组元素的值,并将指针回退一步;
                end():返回最后一个数组元素的值,并将指针移到数组最后一个元素。
                reset():返回第一个数组元素的值,并将指针移到第一个元素上。
            foreach
                语法一:foreach($arr as $value){…}
    语法二:foreach ($arr as $key => $value)
    提示:$key代表下标,$value代表元素的值
            数组操作函数
                1、each()
                    描述:返回数组中当前的键/值对并将数组指针向前移动一步
    语法:array each ( array &$array )
    返回值:返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,单元 0 和 key 包含有数组单元的键名(下标),1 和 value 包含有数据。
    提示:如果内部指针越过了数组的末端,则 each() 返回 FALSE。
                2、list()
                    描述:把数组中的值赋给一些变量
                    语法:array list ( mixed $varname [, mixed $... ] )
            遍历数组的三种方法
                foreach($arr as $key => $value)
                for(){key()current() next()}
                while(list($key,$value)=each($arr))
            数组排序
                sort()
                    升序排,不保留索引关系
                rsort()
                    降序排,不保留索引关系
                 asort()
                    升序排,保留索引关系
                arsort()
                    降序排,保留索引关系
                ksort()
                    数组按键名(下标)升序排列,保留索引关系
                krsort()
                    数组按键名(下标)降序排列,保留索引关系
        PHP超全局变量数组
            以下8个变量,都是数组变量,又称为”预定义变量”。它们的名称是固定的,必须全大写,下划线开头。
            具体
                $_GET :通过地址栏传递到服务器的数据,必须是GET方式传递;
                    发送GET数据的方法:往地址栏发送数据有几种方式
                        (1)通过<a>向地址栏传数据
                        (2)JS也可以向地址发送数据
                $_POST:通过表单 method = post 发送的数据,必须是POST方式传递。
                $_REQUEST:包含GET方式 和POST方式的全部数据。
                    $_REQUEST可以同时获取GET和POST方式传递的数据。$_REQUEST速度比较慢,没有$_GET或$_POST速度快。平常不推荐使用。
                $_SERVER:显示或获取服务器相关的信息。
                    获取服务器端的相关信息。每一次HTTP请求,$_SERVER数组中已经有了相关信息了。
                $GLOBALS:全局中的全局,换话句:包含大部分的超全局数组信息。
                $_SESSION:处理服务器的端的会话数据。
                $_COOKIE:处理客户端的会话数据。
                $_FILES:上传文件需要用到的数组。
        PHP常量
            1、概念
                常量是值永远不变的量。如:身份证号码、DNA、圆周率等。
                常量不能修改。
                常量不能删除。
            2、命名规则
                常量的命名规则与变量一样,但不能加”$”符号;
                常量名只能以字母、下划线开头,不能以数字开头;
                常量尽量全大写,与变量区分开来;如:DB_HOST、TITLE、CONTENT
                常量是区分大小写的;
            3、常量定义define()
                语法:bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
                描述:定义一个常量
                参数:
                    $name常量名称;
                    $value常量的值;
                    $ case_insensitive,是否大小写敏感,false(区分大小写),true不区分大小写
            4、常量判断defined()
                描述:检查某个名称的常量是否存在
                语法:bool defined ( string $name )
                提示:常量名称必须是一个字符串。
            5、PHP预定义常量
                子主题 6
                    PHP的系统常量,大约有800多个,可以通过get_defined_constants()函数来获取。
                        描述:返回所有常量的关联数组,键是常量名,值是常量值
                        语法:array get_defined_constants ([ bool $categorize = false ] )
                        参数:bool $categorize参数,是否显示二维数组,是否常量要分组。
                PHP_VERSION:PHP版本号
    PHP_OS:PHP操作系统
    PHP_INT_MAX:PHP支持的最大整数
    TRUE:既是常量,也是关键字;
    FALSE:既是常量,也是关键字。
            PHP魔术常量
                魔术常量:在程序运行过程中,值可以改变的常量。
                    __LINE__:获取当前行号;
                    __FILE__:获取当前文件的绝对路径;
                    __DIR__:获取当前文件的目录;
                    __FUNCTION__:获取当前函数名;
                    __CLASS__:获取当前类名;
                    __METHOD__:获取当方法名
                提示:get_defined_constants()中没有魔术常量。
        PHP数据类型
            标量(基本)数据类型:字符串型、整型、浮点型、布尔型;复合数据类型:数组、对象;特殊数据类型:资源、NULL
            1、判断数据类型
                var_dump():打印变量的类型和值;
    is_bool():判断变量是否是布尔型;
    is_int():判断变量是否是整型;
    is_float():判断变是否是浮点型;
    is_numeric():判断变量是不是数值型;
    is_array():判断变量是否是数组;
    is_string():判断变量是否是字符串;
    is_null():判断变量是否为NULL
    is_resource():判断变量否是资源型
            2、整型
                整型包括:正整数、负整数、零。
                (1)整型的表示方法
                        十进制表示:$a = 90;
        八进制表示:$a = 077;  //以0开头就是八进制
        十六进制表示:$a = 0x89FA;   //以0x开头就是16进制
                (2)最大整数(PHP_INT_MAX)
                    PHP中整数的范围:-2^31(-2147483648) ~ 2^31-1(2147483647)
    如果一个整数超出范围,则转成浮点数。
            3、浮点型:就是小数
                浮点数的范围:1.8E-308 ~ 1.8E+308  E是以10为底。  1.8E5:是一种科学计数方式。1.8*10^5 = 180000
            4、字符串型
                (1)字符串定义的三种方式
                    用单引号,引起来的一串字符,就是字符串。
                    用双引号,引起来的一串字符,也是字符串。如:$a = “abc”
                    长字符串的表示:heredoc标识符
                        将一个长字符串,放在”<<<heredoc”和”heredoc;”之间;
    “heredoc”这个名称可以自定义;
    必须以”<<<heredoc”开头,必须以”heredoc;”结尾
    “heredoc;”必须单独一行、必须顶头排。
    长字符串中,可以放置HTML、CSS、JS、PHP的变量,但不能进行运算。
    Heredoc的功能与双引号的功能一样,都可以解析PHP变量。
                (2)注意事项
                    单引号内,输出的是变量的名称,不能解析变量;
    双引号内,输出的是变量的值,可以解析变量;
    在双引号内,如果一个变量后跟一个非空字符,会当成一个变量来处理,其实并没有这个变量。
            5、布尔型
                布尔型只有两个值true、false。
    布尔型主要用在条件判断当中。
    哪些值转成布尔型认为是FALSE
    0、””、”0”、false、NULL、array()、空对象,转成布尔型都认为是FALSE。
            6、空型:没有类型
                如果一个变量不存在,则认为空型,空型只有一个值NULL。
                哪些情况认为空?
                    不存在的变量;
                    Unset()某一个变量
            7、资源型
                PHP的功能很少,它需要加载第三方的插件来实现其它功能。那么,第三方插件,对于PHP来说,就是它的资源。如:MySQL、GD2、FileSystem等。
    资源就是到第三方数据的一个引用,也称为”引用传值”。
        PHP数据类型转换
            强制转换
                (int) $a ,强制转成整型;
    (string)$a ,强制转成字符串;
    (object)$a ,强制转成对象;
    (bool) $a ,强制转成布尔值;
    (float) $a ,强制转成浮点型
    (array)$a ,强制转成数组型
            自动转换
                其它类型转成布尔型
                其它类型转成数值型
                其它类型转字符串
        计算机进制
            1、进制介绍
    计算机底层的数据运算和存储都是二进制数据。
    计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别。
    计算机的数据转换,基本都是操作系统自动转换的。
            2、常用进制
        十进制:有10个基本数字,分别为0、1、2、3、4、5、6、7、8、9,运算规则”逢十进一”;
        八进制:有8个基本数字,分别为0、1、2、3、4、5、6、7,运算规则”逢八进一”
        十六进制:有16个基本数字,分别为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,运算规则”逢十六进一”。
    二进制:有2个基本数字,分别为0、1,运算规则”逢二进一”。 一个8进制数,可以用3个二进制数,来表示。如:(567)8 = (101 110 111)2
    一个16进制数,可以用4位二进制数,来表示。如:(A23)16 = (1010 0010 0011)2
            进制转换
                10进制转成2进制
                    原理:除2取余法。第一次将整数除以2,取余数;然后,再将商除以2,再取余数;一直除下去,直到商为0,就除完了。最后读数时,从最后一位读起。
                10进制转成8进制
                    原理:除8取余法。第一次将整数除以8,取余数;然后,再将商除以8,再取余数;一直除下去,直接商为0,就除完了。最后读数时,从最后一位读起。
                10进制转成16进制
                    原理:除16取余法。第一次将整数除以16,取余数;然后,再将商除以16,再取余数;一直除下去,直接商为0,就除完了。最后读数时,从最后一位读起。
                2进制转成10进制
                    原理:按权相加法。2进制每一位上的数,乘以所在的位权(指数常数),然后将各个乘积求和。
    函数bindec()将二进制转成十进制。
                8进制转成10进制
                    原理:按权相加法。8进制每一位上的数,乘以所在的位权(指数常数),然后将各个乘积求和。
    函数octdec()将八进制转成十进制。
                16进制转成10进制
                    原理:按权相加法。16进制每一位上的数,乘以所在的位权(指数常数),然后将各个乘积求和。
    函数hexdec()将十六进制转成十进制。
        函数
            基本介绍
                1、概述
                2、函数定义格式
                3、函数调用
                4、函数参数
                5、默认参数
                    PHP支持默认参数传递。
    如果实参个数少于形参时,将用默认参数来代替实参。
    提示:默认参数只能放在非默认参数的右边。
    提示:默认参数的值,几乎所有类型都可以,但不能是函数调用、资源、对象。
            PHP常用函数
                判断变量的数据类型函数
                    is_string() 判断一个变量是不是字符串型;
                    is_bool() 判断一个变量是不是布尔型;
                    is_float() 判断一个变量是不是浮点型;
                    is_int() 判断一个变量是不是整型,不能判断字符串的整型;
                    is_numeric() 判断一个变量是不是数值型;
                    is_scalar() 判断一个变量是不是标量数据类型(整型、浮点型、字符型、布尔型);
                    is_array() 判断一个变量是不是数组型;
                    is_null() 判断一个变量是不是NULL型;
                    is_resource() 判断一个变量是不是资源型;
                    is_object() 判断一个变量是不是对象型。
                数组和字符串转换函数
                    1、implode()
                        描述:将一个一维数组的值转化为字符串(数组转字符串)
    语法:string implode ( string $glue , array $pieces )
    参数:
    $glue, 数组各元素之间的连接符号,默认为空字符串;
    $pieces, 要连接的数组
                    2、explode()
                        描述:使用一个字符串分割另一个字符串(将字符串转成数组)
    语法:array explode ( string $delimiter , string $string )
    参数:
    $delimiter, 是分割的字符串;
    $string, 是要分割的原始字符串;
    返回:是一个数组。
                日期时间函数
                    1、time()
                        描述:返回当前的 Unix 时间戳
                        语法:int time ( void )
                        返回:返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
                    2、date()
                        描述:格式化一个本地时间/日期
                        语法:string date ( string $format [, int $timestamp ] )
                        参数:$timestamp, 提供的时间戳  $format, 格式化的字符串;代表要传递的时间戳。默认为当前时间戳。
     
                    3、strtotime()
     
                            描述:将任何英文文本的日期时间描述解析为 Unix 时间戳
                            语法:int strtotime ( string $time )
                    4、microtime()
                        描述:返回当前 Unix 时间戳和微秒数
                        语法:mixed microtime ( void )
                        返回:本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
                数学相关函数
                    1、abs()
                    2、ceil()
    描述:进一法取整
                    3、floor()
    描述:舍去法取整
                    4、round()
    描述:对浮点数进行四舍五入
                    5、rand()
                    6、mt_rand()
                        描述:生成更好的随机数
                        语法:int mt_rand ( void )  或 int mt_rand ( int $min , int $max )
                        提示:如果省略参数,则随机数的范围是0 ~ PHP_INT_MAX。
                        注意:mt_rand()产生随机数值的平均速度比 rand() 快四倍。
                数组与键名和键值相关的两个函数
                    1、array_keys()
    描述:返回数组中所有的键名
                    2、array_values()
    描述:返回数组中所有的值
                字符串函数
                    1、strlen()
                        描述:获取字符串长度
    语法:int strlen ( string $string )
                    2、substr()
                        描述:返回字符串的子串
                        语法:string substr ( string $string , int $start [, int $length ] )
                        参数:$string是原始字符串
    $start如果 start 是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。例如,在字符串 "abcdef" 中,在位置 0 的字符是 "a",位置 2 的字符串是 "c" 等等。如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。如果 string 的长度小于或等于 start,将返回 FALSE。
    $length返回多少个字符
                    3、strtoupper()
                        描述:将字符串转化为大写
    语法:string strtoupper ( string $string )
                    4、strtolower()
                        描述:将字符串转化为小写
                        语法:string strtolower ( string $str )
                    5、ucfirst()
                        描述:ucfirst — 将字符串的首字母转换为大写
                        语法:string ucfirst ( string $str )
                    6、trim()(r ,l除去左边 右边的)
     
                        描述:除字符串首尾处的空白字符(或者其他字符)
                        语法:string trim ( string $str [, string $charlist = " x0B" ] )
                        参数:此函数返回字符串 str 去除首尾空白字符后的结果。如果不指定第二个参数,trim() 将去除这些字符:
                    7、strrev()
                        描述:反转字符串
                        语法:string strrev ( string $string )
                    8、strpos()
     
                        描述:查找字符串首次出现的位置,从左往右查找。
                        语法:mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
                        参数:
                            $haystack, 原始字符串
                            $needle, 目标字符串
                            $offset, 索引偏移量
                    9、strrpos()
                        描述:计算指定字符串在目标字符串中最后一次出现的位置,从右往左查找。
                        语法:int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
                    10、strchr()和strstr()是一样的
                        描述:查找字符串的首次出现
                        语法:string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
                        参数:
                            $needle如果 needle 不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。
                            $haystack输入字符串。
                            $before_needle若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
                            返回:返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
                    11、str_replace()
     
                        描述:子字符串替换
                        语法:mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
                        参数:
                            $search查找的目标值,也就是 needle。一个数组可以指定多个目标。
                            $replace , search 的替换值。一个数组可以被用来指定多重替换。
                            $subject执行替换的数组或者字符串。也就是 haystack。
                            $count如果被指定,它的值将被设置为替换发生的次数。
                            如果 search 和 replace 都是数组,它们的值将会被依次处理
                    12、str_repeat()
                        描述:重复一个字符串
    语法:string str_repeat ( string $input , int $multiplier )
    参数:
    $input要重复的字符串
    $multiplier重复的次数
        改变脚本运行的几个函数
            终止脚本运行  die()和exit()
                描述:输出一个消息并且退出当前脚本。
                语法:void exit ([ string $status ] )
                参数:$status可选,是一个中断脚本执行前的提示信息。
                提示:常用在检查程序错误时。
            延缓脚本执行:sleep(n)
                描述:相当于JS中的延时器setTimeout()
    描述:延缓执行
    语法:int sleep ( int $seconds )
    参数:$seconds是延缓的秒数
            PHP服务器端包含
                用法:include “1.php”  或  include(“1.php”)
                描述:include、require都是语法结构,不是真正的函数,因此后面的括号可带可不带。
                1、Include和require的区别
                    include:将另一个文件的代码包到当前文件中执行,若包含文件不存在,报一个警告错误(E_WARNING),脚本会继续向下执行。
                    require:将另一个文件的代码包到当前文件中执行。若包含文件不存在,报一个致命错误(E_ERROR),脚本会终止执行。
                    提示:两个都是包含文件,但在处理错误时方式不一样。
                2、include_once和include区别
     
                    include_once:将另一个文件的代码包到当前文件中执行。对包含的文件会进行判断,如果该文件曾经被包含过,则该文件就不会再包含了。
                    require_once:将另一个文件的代码包到当前文件中执行。对包含的文件会进行判断,如果该文件曾经被包含过,则该文件就不会再包含了。
                    提示:在一个脚本文件中,不能定义两个同名的函数(函数重载)。
                    使用include_once可以避免函数重载。
                包含文件中的return语句
                    包含文件中的return语句,可以向include返回一个值。然后,再把该值存储一个变量
        三个中断
            break
                结束整次循环
                break [n] :n决定跳出第几次循环
            continue
                结束当次循环
            return
        两个判断&三个循环
            if
            while
            dowhile
            for
            switch
        运算符
            算术运算符
                +、-、*、/、%、++、--
    算术运算符的运算结果,一定是数值型。
    类型转换:如果两边的操作数不是数值型,要先转成数值型,再进行算术运算。
            字符串运算符
                . 和 .=
            比较运算符:>、<、>=、<=、==、!=、===、!==
            逻辑运算符:&&、||、!
            错误控制运算符(@)
                “@”主要用来屏蔽表达式的系统错误的。
    可以用来屏蔽常量、变量、函数调用、include语句。
            运算符优先级
  • 相关阅读:
    HBase启动遇到Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0警告
    hadoop伪分布式安装之Linux环境准备
    个人作业收官——软件工程实践总结
    K米测试
    K米评测
    第三次作业-结对编程
    关于第二次作业的改进之处
    第二次作业——结对项目之需求分析与原型设计
    调研《构建之法》指导下的全国高校的历届软工实践作品
    PSP总结报告
  • 原文地址:https://www.cnblogs.com/crazytata/p/7465358.html
Copyright © 2011-2022 走看看