zoukankan      html  css  js  c++  java
  • PHP最全笔记(一)(值得收藏,不时翻看一下)

    PHP笔记来啦~绝对干货!

    以下为我以前学PHP时做的笔记,时不时的也会添加一些基础知识点进去,有时还翻出来查查。

    //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出。/* 【命名规则】 */常量名 类常量建议全大写,单词间用下划线分隔    // MIN_WIDTH
    变量名建议用下划线方式分隔            // $var_name
    函数名建议用驼峰命名法                // varName
    定界符建议全大写                 // <<<DING, <<<'DING'
    文件名建议全小写和下划线、数字        // func_name.php
    私有属性名、方法名建议加下划线        // private $_name _func
    接口名建议加I_                    // interface I_Name/* 语言结构 */array(), echo(), empty(), eval(), exit(), isset(), list(), print(), unset()echo, print 可省略括号。/* 预定义常量 */PATH_SEPARATOR  //路径分隔符(Windows为分号,类Unix为冒号)
    DIRECTORY_SEPARATOR //目录分隔符PHP_EOL //当前系统的换行符PHP_VERSION //PHP版本号PHP_OS  //PHP服务操作系统
    PHP_SAPI    //用来判断是使用命令行还是浏览器执行的,如果 PHP_SAPI=='cli' 表示是在命令行下执行PHP_INT_MAX                    INT最大值,32位平台时值为2147483647
    PHP_INT_SIZE                   INT字长,32位平台时值为4(4字节)
    M_PI    //圆周率值
    M_E     //自然数
    //PHP运行环境检测函数php_sapi_name() //返回一个PHP与WEB服务器接口类型的小写字符串该函数返回值与常量PHP_SAPI一致!
    接口类型:SAPI(the Server API, SAPI)
    可能值:aolserver、apache、apache2filter、apache2handler、caudium、cgi、cgi-fcgi、cli、 continuity、embed、isapi、litespeed milter、nsapi、phttpd、pi3web、roxen、thttpd、tux、webjames/* 大小写问题 */
    - 类名、方法名、属性名、函数名:不区分大小写
    - 变量名、常量名、元素下标:区分大小写/* 可变标识符 */可变变量  $i = 3; $k = 'i'; echo $$k; //输出3
    可变函数  function func() {echo 'hello!';} $i = 'func'; $i(); //输出hello
    可变下标  $i = '1234'; $k = 3; echo $i[$k];   //输出4
    可变类名  class CLS{public $k = 'hello';} $i = 'CLS'; $j = new $i; echo $j->k;
    可变属性  class CLS{public $k = 'hello';} $i = 'k'; $j = new CLS; echo $j->$i;
    可变方法  class CLS{public function k(){echo 'hello';}} $i='k'; $j=new CLS; $j->$i();/* 可变变量 */
    * 用于业务逻辑判断得到某些具体信息    $var_name = "class_name";
        $$var_name = "PHP0913";        // $class_name = "PHP0913";$class_name已存入内存中    var_dump($class_name);        // var_dump($$var_name);/* 变量函数 */get_defined_vars    //返回由所有已定义变量所组成的数组(包括环境变量、服务器变量和用户定义的变量)/* unset() */
    * unset()仅删除当前变量名和引用,其值并未被删除
    * 引用传递中,删除一个变量及其引用,其他变量及引用均存在,且值依然存在     echo "<br />";    $v3 = '值';    $v4 = &$v3;    unset($v4);    var_dump($v3, $v4);/* 变量的最长有效期 */
    * 当前脚本的执行周期,脚本执行结束,变量即消失/* 预定义变量/超全局变量 */$GLOBALS$_COOKIE$_ENV$_FILES$_GET$_POST$_REQUEST$_SERVER$_SESSION/* 常量定义 */define(常量名, 常量值, [区分大小写参数])        //true表示不区分/false表示区分大小写const 常量名 = 常量值    // 新,建议常量名可以使用特殊字符constant($name)        // 获取常量名
                        // 例:echo constant('-_-');/* 常量相关函数 */definedget_defined_constants/* 预定义常量 */
    __FILE__            所在文件的绝对路径
    __LINE__            文件中的当前行号
    __DIR__            文件所在目录
    __FUNCTION__        函数名称
    __CLASS__            类的名称
    __METHOD__        类的方法名
    __NAMESPACE__        当前命名空间的名称
    /* 整型 */
    整型占用4字节,共4*8=32位,最大值为2147483647,最小值为-2147483648,最小值的绝对值比最大值的大1
    最高为表示正负,1表示负,0表示正
    /* 进制转换函数 */
    只能十进制与其他进制进行转换,只有六种
    转换时,参数应是字符串(即不可含八进制的“0”或十六进制的“0x”)
    10     dec
    2      bin
    8      oct
    16     hex
    hexdec()    十六进制转十进制        也可写hex2dec()
    dechex()    十进制转十六进制        也可写dec2hex()
    bindec()    二进制转十进制        也可写bin2dec()
    decbin()    十进制转二进制        也可写dex2bin()
    octdec()    八进制转十进制        也可写oct2dec()
    decoct()    十进制转八进制        也可写dec2oct()
    /* 浮点数 */
    浮点数不能比较大小 !!!
    几乎所有小数,在保存时都是近似值而不是精确值!
    最大值:+/- 1.8E308
    PHP所能保存的最长小数位:14位
    /* 单引号字符串 */
    单引号字符串中,只能转义反斜杠和单引号
    /* 双引号字符串 */
    只解析字符串一次 !!!
    eval     把字符串作为PHP代码执行
    大括号包裹变量,可确定变量名界限。如:"aaa{$bbb}ccc"
    双引号中可以将ASCII码转换为字符
    "x61" -> a    // 字符串中不需0,整型中才是0x前导
    "x49x54x43x41x53x54" -> ITCAST
    将ASCII转成字符函数chr()
    将字符转成ASCII函数ord()
    #双引号转义列表
     换行
     回车
     水平制表符
    \ 反斜线
    $ 美元标记
    v 垂直制表符
    e Escape
    f 换页
    " 双引号"
    [0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符  
    x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符  
    /* 定界符 */
    herodoc - 功能同双引号,能解析
    $str = <<<AAA
    字符串内容
    AAA;
    nowdoc - 功能同单引号,不能解析
    只在开始位置有单引号
    $str = <<<'AAA'
    字符串内容
    AAA;
    /* 字符串的使用 */
    可将字符串当作一个字符的集合来使用,可独立访问每个字符。仅适用于单字节字符(字母、数字、半角标点符号),像中文等不可用
    $str = "abcd";
    echo $str[3];   // d
    echo $str{0};   // a
    /* 【类型操作函数】 */
    //获取/设置类型
    gettype($var) //获取变量的数据类型
    settype($var, $type) //设置变量的数据类型
    //类型判断
    is_int
    is_float
    is_null
    is_string
    is_resource
    is_array
    is_bool
    is_object       
    is_numeric      检测变量是否为数字或数字字符串
    //转换成指定的数据类型
    boolval
    floatval
    intval
    strval
    //强制转换类型
    (int)
    (float)
    (string)
    (bool)
    (array)
    (object)
    (unset) //转换为NULL
    (binary) 转换和 b前缀转换  //转换成二进制
    var_dump        打印变量的相关信息。
                    显示关于一个或多个表达式的结构信息,包括表达式的类型与值。
                    数组将递归展开值,通过缩进显示其结构。
    var_export($var [,bool $return]) //输出或返回一个变量的字符串表示
        $return:为true,则返回变量执行后的结果
    print_r         打印关于变量的易于理解的信息
    empty           检查一个变量是否为空
    isset           检测变量是否存在
    /* 【流程控制】 */
    //if语句的替代语法
    if (条件判断) :
       语句块;
    elseif (条件判断) :
       语句块;
    else :
       语句块;
    endif;
    //流程控制的替代语法
    在嵌入HTML时常用
    将 { 换成 : , 将 } 换成 endif; 等
    endif
    endwhile
    endfor
    endforeach
    endswitch
    /* 【switch】 */
    switch (条件) {
      case 状态值1:
           语句块;
           [break;]
      case 状态值2:
           语句块;
           [break;]
      case 状态值3:
      case 状态值4:
           语句块;
           [break;]
      default:
           语句块;
           [break;]
    }
    switch是状态分支,特殊的循环
    先计算出状态值,再去与判断数作比较
    break退出流程
    /* 【for循环】 */
    for (条件初始化表达式; 条件判断表达式; 条件变化表达式) {
    循环体
    }
    假设循环体被执行了N次,则
    条件初始化表达式被执行1次
    条件判断表达式被执行N+1次
    条件变化表达式被执行N次
    注意:
       1. 循环变量在for语句结束后还可以继续使用,值为第一次失败的值
       2. 循环变量在for循环体内可以使用
       3. 任何条件表达式均可省略,但分号不能省略
           a. 条件初始化表达式被省略时,循环变量被赋值为null,在与条件判断时,
                进行类型转换后再比较。也可以在for语句外进行初始化。
           b. 条件判断表达式被省略时,表示循环为真,进入死循环
           c. 条件变化表达式被省略时,可以在循环体内完成
       4. 每个表达式均可由多条语句组成,每条语句之间使用逗号分割
            如果条件判断表达式由多条语句组成,都会执行,但只有最后一条语句才作为判断条件
       5. for只能遍历数值型索引下标数组
            数组长度函数:count()
       6. 应该将可以初始化的语句均放在条件初始化表达式内,这样可以省去很多执行次数

  • 相关阅读:
    FiddlerScript修改特定请求参数下的返回值
    nginx设置反向代理后,页面上的js css文件无法加载
    通过外网访问内网服务器
    linux下使用正确的用户名密码,本地无法连接mysql
    合并重叠时间段C#
    数据库一直显示为单用户,解决办法
    windows下使用tomcat部署网站
    数据库一直还原中,解决办法
    通过mdf ldf文件还原数据库
    知道css有个content属性吗?有什么作用?有什么应用?
  • 原文地址:https://www.cnblogs.com/testsec/p/6103377.html
Copyright © 2011-2022 走看看