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. 应该将可以初始化的语句均放在条件初始化表达式内,这样可以省去很多执行次数

  • 相关阅读:
    tensorflow2.0 GPU和CPU 时间对比
    第一次使用FileZilla Server
    PremiumSoft Navicat 15 for Oracle中文破解版安装教程
    Unmapped Spring configuration files found. Please configure Spring facet or use 'Create Default Context' to add one including all unmapped files.
    ng : 无法加载文件 D: odejs ode_global g.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
    angular
    Github上优秀的go项目
    win10---file explore 中remove quick access folder
    react--useEffect使用
    linux---cat 和 grep 的妙用
  • 原文地址:https://www.cnblogs.com/testsec/p/6103377.html
Copyright © 2011-2022 走看看