zoukankan      html  css  js  c++  java
  • php整理

    1.includerequire的区别

    • 加载失败的处理方式不同。引入不存在的文件时,include会产生警告且脚本还会继续执行,require则会导致一个致命性错误且脚本停止执行。
    • 文件引用方式不同。include()执行时需要引用的文件每次都进行执行,并且可以有返回值,require()只是单纯的文件替换,没有返回值
      require一般放在PHP文件的最前面,程序在执行前会先倒入所需要引用的文件;include一般放在程序的控制流程中,当程序执行时碰到才会引用,简化程序的执行流程。

    2.常用关键字
    final:用于声明方法和类,修饰类时,该类不能被继承,修饰方法时,该方法不能被覆盖。
    static:主要用来修饰成员变量以及成员方法,分别为静态变量和静态方法,通过类直接调用。
    global:主要使用于函数内声明变量为全局变量,在函数内部可以使用外部变量。global声明的变量只是全局变量的一个同名引用,$GLOBALS是全局变量本身。
    thisselfparentthis是指向当前对象的指针,self是指向当前类的指针,parent是指向当前父类的指针。
    Trait:是为PHP的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用
    interface:接口是一个成员属性全部为抽象或常量的特殊抽象类,作用是:弥补PHP单继承,单继承,多实现
    (1)定义的方法都是抽象方法,只需要声明,不需要实现
    (2)定义的变量全部为常量(const声明)
    implements:实现接口,可以多实现
    abstract:修饰方法时,只有方法名,没有方法体(abstract function());只要声明抽象方法的类就是抽象类;抽象类不能实例化,可以被继承,可以看做子类实现的规范和模板;

    3.PHP7新特性
    (1)添加了函数的形参声明和返回类型声明
    默认情况下,所有的PHP文件都处于弱类型校验模式。
    PHP7增加了标量类型声明的特性,标量类型声明两种模式
    - 强制模式(默认)
    - 严格模式
    PHP7增加了对返回类型声明的支持,返回类型声明指明了函数返回值的类型;
    (2)添加了NULL合并运算符(??)是用于执行isset()检测的三元运算
    (3)可以使用一个use从同一个namespace导入多个类、函数;
    (4)改变了大多数错误的报告机制;

    4.单引号和双引号
    单引号:在单引号字符串中的变量和特殊字符的转义序列不会被替换
    双引号:在双引号定义的字符串最重要的特征是变量会被解析

    5.echoprintprint_rvar_dump之间的区别

    • echoprint都是语言结构,只能输出简单类型的值(字符、数字),唯一不同的是echo支持输出多参数,print只能输出一个参数
    • print_rvar_dump是函数,可用于打印数组和对象,前者只支持一个参数,后者支持多个参数并且显示信息更详细,常用于调试。
    • var_export输出或返回一个变量的字符串表示,和var_dump功能类似,但是输出的是合法的php代码

    6.POSTGETPUTDELETE
    基于CURD
    POST => Create
    GET => Read
    PUT => Update
    DELETE => Delete

    7.用PHP写出显示客户端IP和服务器端IP的代码
    echo $_SERVER['REMOTE_ADDR']. "<br/>"; //客户端
    echo $_SERVER['SERVER_ADDR']. "<br/>"; //服务器端

    8.用PHP打印出前一天的时间,格式例如 2006-5-10 22:21:21
    echo '当前时间:'.date('Y-m-d H:i:s', time()). "<br/>";
    echo '前一天时间:'.date('Y-m-d H:i:s', strtotime('-1 day')). "<br/>";

    9.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

    //opendir:打开目录句柄
    //readdir:返回目录句柄中的条目
    //closedir:关闭目录句柄
    //mkdir:创建目录
    //rmdir:删除目录
    //is_dir:是否是目录
    function read($dir = ''){
        $handle = opendir($dir);
        if ($handle){
            while ($file = readdir($handle)){
                if ($file!='.' && $file!='..'){
                    $fullpath = $dir.'/'.$file;
                    if (is_dir($fullpath)){
                        echo $fullpath, "<br/>";
                        read($fullpath);
                    }else{
                        echo $fullpath, "<br/>";
                    }
                }
            }
        }
        closedir($handle);
    }
    

    10.isset()empty()
    FALSE:当转换为boolean时,以下值被认为是false
    -布尔值false本身
    -整型值0(零)
    -浮点值0.0
    -空字符串'',字符串'0',以及尚未赋值的变量
    -不包含任何元素的数组
    -特殊类型NULL
    -所有其他值都被任务是TRUE
    NULL类型的三种情况:
    -通过变量赋值明确指定变量的值为NULL
    -一个变量没有给任何值
    -使用函数unset()将变量销毁掉
    empty():当传入的变量的值为false或者null,为true,反之为false
    isset():当出入的变量为null时,为true,反之为false

    11.关于error
    在程序开发调试错误的过程中,我们总会遇到各种各样的error,部分error会影响到代码的执行,部分则只是给出一个WARNINGNOTICE,不会影响下面代码的继续执行。
    @:错误控制运算符,放在php表达式之前,该表达式可能产生的任何错误信息都被忽略掉
    error_reporting(int $level):设置应该报告何种php错误,设置为0则关闭掉错误报告

    12.修改SESSION的生存时间
    php.ini文件中的session.gc_maxlifetime的值进行修改,然后重启,或者代码设置

    13. php.ini文件中的safe_mode
    safe_mode:安全模式,提供一个基本安全的共享环境,当safe_mode打开时,一些访问文件系统的函数功能会被限制,如:mkdir,touch,readdir,opendir等..

    14.如何得到网址http://www.phpres.com/index.html的内容

    echo file_get_contents('https://www.baidu.com');
    
    //parse_url:解析一个URL并返回一个关联数组,包含在URL出现的各种组成部分
    print_r(parse_url('http://www.phpres.com/index.html'));
    

    15.取出文件扩展名

    $str = 'dir/upload.image.jpg';
    echo array_pop(explode('.', $str)), "<br/>";
    echo pathinfo($str, PATHINFO_EXTENSION), "<br/>";
    

    16.求两个日期的差值 2007-2-5 ~ 2007-3-9

    $ints1 = strtotime('2007-3-5');
    $ints2 = strtotime('2007-3-9');
    echo ($ints2-$ints1)/(60*60*24), "<br/>";
    

    17.将'open_door'转换成'OpenDoor',将'make_by_id'转换成'MakeById'

    $str1 = 'open_door';
    $str2 = 'make_by_id';
    echo str_replace(' ', '', ucwords(str_replace('_', ' ', $str1))), "<br/>";
    echo str_replace(' ', '', ucwords(str_replace('_', ' ', $str2))), "<br/>";
    

    18.超全局变量
    超全局变量是在全部作用域中始终可用的内置变量。
    $GLOBALS:引用全局作用域中可用的全部变量
    $_SERVER:服务器和执行环境的信息
    $_GETHTTP GET变量
    $_POSTHTTP POST变量
    $_FILESHTTP 文件上传变量
    $_COOKIEHTTP Cookies
    $_SESSIONSession变量
    $_REQUESTHTTP Request变量
    $_ENV:环境变量

    19.常用魔术常量
    __LINE__:文件中的当前行号
    __FILE_:文件的完整路径和文件名
    __DIR__:文件所在的目录
    __FUNCTION__:函数名称
    __CLASS__:类的名称
    __TRAIT__Trait的名字,包括其被声明的作用区域
    __METHOD__:类的方法名
    __NAMESPAC__:当前命名空间的名称

    20.解析函数、析构函数,常用的魔术方法
    __construct:在类被实例化的时候自动执行;
    __destruct:在对象被销毁的时候自动执行;
    __toString:在对象被当成字符串使用时自动执行;
    __invoke:在对象被当成函数执行的时执行执行;
    __clone:在克隆对象时自动执行;

    数值常用函数
    float ceil($num):进一取整
    float floor($num):舍一取整
    float round($num, $n):四舍五入,可保留n位小数

    number pow(number $base, number $exp):幂运算
    float sqrt(float $arg):平方根

    number max($num1, $num2...):返回最大值
    number min($num1, $num2...):返回最小值

    int rand($min, $max):产生min到max之间的随机数
    int mt_rand($min, $max):同上,但效率更高

    string number_format($number, $n):以千分位分隔符方式格式化数字,并保留n位小数

    字符串常用函数
    --- 长度
    int strlen($var):获取字符串或数字的长度(汉字默认UTF8格式,长度位3)
    int mb_strlen($var):获取字符串或数字的长度(汉字长度位1)

    --- 大小写
    string strtolower($str):单词小写
    string strtoupper($str):单词大写
    string ucfirst($str):首字母大写,其他字母不变
    string ucwords($str):每个单词首字母大写,其他字母不变

    --- 替换
    string str_replace($search, $replace, $str):将字符串str里面的serach部分换位replace字符串,区分大小写
    string str_ireplace($search, $replace, $str):同上,不区分大小写
    string htmlspecialchars($str):将str里面的字符转换为html实体,比如将<改为&lt;

    --- 去除空格
    string ltrim($str):删除左边的空格
    string rtrim($str):删除右边的空格
    string trim($str):删除两边的空格

    --- 位置
    int strpos($str, $needle):返回needle第一次在str出现的位置,区分大小写
    int stripos($str, $needle):同上,不区分大小写
    int strrpos($str, $needle):返回needle最后一次在str出现的位置,区分大小写
    int strripos($str, $needle):同上,不区分大小写

    -- 截取
    string substr($str, $offset, $length):字符串截取

    --- 反转
    string strrev($str):字符串反转

    --- 加密
    string md5($str)md5加密

    --- 打乱
    string str_shuffle($str):随机打乱字符串,可用于产生随机验证码

    --- 拆散组合
    array explode($delimiter, $str):将字符串str按照delimiter分割成数组
    string imploae($glue, $arr):将数组arr按照glue拼接成字符串

    数组常用函数
    mixed array_shift(array &$arr):将数组第一个元素移除数组并返回。将array的长度减1并将其他单元向前移动一位。所有数字键名改为从0开始计数
    mixed array_unshift(array &$arr, mixed $str):在数组的开头插入一个或多个单元。将传入的单元插入到array数组的开头。

    int array_push(array &$arr, mixed $v1...):将一个或多个单元压入数组的末尾(入栈),数组长度增加。返回压入后数组的长度
    mixed array_pop(array &$array):弹出数组的最后一个单元,数组长度减1
    mixed array_rand(array $array, $n):从数组中随机取出n个键名

    current($arr):返回数组中的当前单元的值
    key($arr):返回数组中的当前单元的键
    prev($arr):将数组中的内部指针向前移动一位,并返回值
    next($arr):将数组中的内部指针向后移动一位,并返回值
    reset($arr):将数组中内部指针指向第一个单元
    end($arr):将数组中的内部指针指向最后一个单元

    array_keys($arr):返回数组中所有的键
    array_values($arr):返回数组中所有的值
    array_mpa('function', $arr):将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组

    文件常用函数
    int filesize($filename):返回文件大小的字节数

    int filectime($filename):返回文件的创建时间的时间戳
    int filemtile($filename):返回文件的最后修改时间的时间戳
    int fileatime($filename):返回文件最后访问时间的时间戳
    is_readable($filename):是否可读
    is_writabel($filename):是否可写
    is_executable($filename):是否可执行
    is_file($filename):是否是文件
    file_exists($filename):文件是否存在

    array pathinfo($filename, PATHINFO_EXTENSION)
    PAHTINFO_DIRNAME:文件夹名
    PATHINFO_BASENAME:文件全称
    PATHINFO_EXTENSION:文件拓展名
    PATHINFO_FILENAME:文件名

    bool touch($filename):创建文件
    bool unlink($filename):删除文件
    bool rename($oldname, $newname):重命名
    bool copy($source, $des):将source文件移动到des

    string file_get_contents($filename):将整个文件读入一个字符串
    int file_put_contents($filename, $str):将一个字符串写入文件

    string serialize($value):产生一个可存储的值的表示,成为字符串
    mixed unserialize($str):从已存储的表示中创建php的值,成为反序列化

    string json_encode($value):对变量进行json编码,返回json字符串
    mixed json_decode($str):对json格式的字符串进行编码,转换成php变量

    日期常用函数
    --- 时区相关
    php.ini文件中的date.timezone

    string date($format, int $timestamp):格式化一个时间戳 format:Y-m-d H:i:s

    int time():返回当前Unix时间戳,即1970年1月1日0时0分0秒到现在的总秒数
    float microtime(true):返回当前Unix时间戳微秒数
    int strtotime(string $time):将字符串转换为Unix时间戳
    yesterday 昨天00:00:00
    -1 day 昨天
    -1 month 一个月前

    array getdate(int $timestamp):可以日期、时间信息
    Array
    (
    [seconds] => 43 //秒
    [minutes] => 50 //分
    [hours] => 15 //小时
    [mday] => 1 //一个月中的第几天
    [wday] => 4 //一周中的第几天
    [mon] => 8 //月
    [year] => 2019 //年
    [yday] => 212 //一年中的第几天
    [weekday] => Thursday //星期几的名称
    [month] => August //月份名称
    [0] => 1564667443 //时间戳
    )

  • 相关阅读:
    SAP 多料号展BOM
    SAP QM 检验批可用库存回转为待检验库存
    SAP QM UD检验批回转为REL待检验状态
    在ABAP中获取应用程序服务器的IP地址
    SAP连接外部数据库后批量写入数据
    Java调用Axis2用SAP WSDL生成的Stub文件
    用最新的采购信息记录更新采购单的价格——BAPI_PO_CHANGE
    SAP QM——QA01、QA02、QA03屏幕增强
    Java递归实现一、二、三级菜单查询
    ABAP——查询
  • 原文地址:https://www.cnblogs.com/jackw1/p/12581110.html
Copyright © 2011-2022 走看看