美文网首页
PHP 各种语法总结

PHP 各种语法总结

作者: 齐舞647 | 来源:发表于2017-06-29 21:03 被阅读27次

    最近,想学一门脚本语言,
    所以初学PHP,
    作一些比较基础的语法总结

    变量:$

    //integer:
    $i = 2468;      // 十进制
    $i = -1357;     // 负数
    $i = 0123;      // 0 八进制
    $i = 0x456;     // 0x 十六进制
    
    //float:
    $f = 12.34;     // 1.2 X 10^3
    $f = 1.2e3;
    
    //string:
    $s1 = "PHP string";
    $v = "string";
    $s2 = "PHP$v";   //输出PHPstring
    $s3 = "PHP\$v"   //输出PHP$v
    
    //array:
    $arr = array('spring','summer','fall','winter');
    echo $arr[0];
    
    $sys = array(
    "server"=>"Apache2",
    "os"=>"ubuntu",
    "db"=>"MySQL",
    );
    echo $sys["server"];
    echo "<br/>";
    echo $sys["db"];
    
    //可强转:
    $foo = 10;
    $foo = (boolean) $foo;
    
    //可变变量:
    $i = "abc";
    $$i = "xyz";  //等价于:$abc = "xyz";
    

    常量:define

    define(PHP,"best language");
    

    for循环:

    define(PI,3.14);
    for($r=1;$r<=10;$r++){
          $area = PI * $r *$r;
          if($area  > 100)
                    break;
    echo "r = $r , area = $area";
    echo "<br/>";
    }
    

    函数:function 区别于C/C++...

    在C中,全局变量在函数中自动生效,除非被局部变量覆盖。
    在PHP中,函数外的参数,无法在函数内访问,除非传参数地址引用。
    或者使用global在函数中声明这是全局变量。
    原因是作用域不一样。

    function say_hello($some_name){
        echo "Hello ,".$some_name;
        echo "<br/>";
    }
    say_hello("MrLiu");
    
    
    $a = 1;
    $b = 2;
    function sum1(&$a,&$b){
        $b = $a + $b;
    }
    function sum2(){
        global $a,$b;    //global声明全局 去找全局变量$a,$b
        $b = $a + $b;
    }
    
    echo '$a + $b = '.$b;
    

    数组:添加了索引,更快更方便找到数组元素。

    //1
    <?php
    $ms_office = array(
    'word',
    'excel',
    'outlook',
    'access'
    );
    
    foreach($ms_office as $software){    //使用foreach遍历数组$ms_office的值
          echo $software;        //输出数组$ms_office中的值
          echo "<br/>";
          echo "<br/>";
    }
    
    print_r($ms_office);    //使用print_r遍历输出数组
    
    $item_num = count($ms_office);
    echo '数组$ms_office的元素个数为:'.$item_num;
    ?>
    
    //2
    <?php
    $ms_office = array(
    'wd'=>'word',
    'ec'=>'excel',
    'ol'=>'outlook',
    'ac'=>'access'
    );
    foreach($ms_office as $key=>$value){    //使用foreach遍历数组$ms_office的值
          echo $key.":".$value;            //输出数组$ms_office中的值
          echo "<br/>";
          echo "<br/>";
    }
    
    echo "<pre>";
    print_r($ms_office);        //有序输出数组$ms_office的结构
    ?>
    

    数组的各种操作:

    //数组分割:
    array array_chunk(array $input_array, int $size, bool preserve);
    
    //数组合并
    array array_merge($array....)
    
    //返回数组当前元素
    current($array[..]);
    
    //返回当前元素的下一个元素,指针移到下一个。
    next($array[..]);
    
    //返回当前元素的上一个元素,指针移到上一个。
    prev($array[..]);
    
    //返回数组的最后一个元素的值
    end($array);
    
    //清除索引,正向排序,字母由前到后,数字由小到大。
    bool sort(array &$arr [,int $sort_flag]);
    
    //清除索引,逆向排序
    bool rsort(array &$arr [,int $sort_flag]);
    
    //保持索引,正向排序
    asort();
    
    //保持索引,按索引名正向排序
    ksort();
    
    //随机排序,去键名
    bool shuffle(array $array);
    
    //按原顺序反向排序
    array array_reverse(array $array [,bool $preserve_keys]);
    
    //重置数组:函数内部指针指回数组第一个元素
    mixed reset(array &$arr);
    
    //用数组对变量赋值
    $planet = array(
    .....
    )
    list($no1,$no2,$no3) = $planet;
    
    //快速创建数组:
    echo '<pre>';
    $arr1 = range(5,10);
    print_r($arr1);
    $arr2 = range('a','f');
    print_r($arr2);
    $arr3 = range(2,10,2);
    print_r($arr3);
    
    //压入数组元素在末端
    int array_push(array $array,mixed $var);
    
    //弹出数组元素在末端
    mixed array_pop(array $array);
    
    //改变数组字符索引名的大小写
    array array_change_key_case()
    
    //数组之间的交集
    array array_intersect(array $arr1,array $arr2....);
    //加索引取交集
    array array_intersect_assoc(array $arr1,array $arr2...);
    
    //数组之间的差集
    array array_diff(array $arr1,array $arr2...);
    //加索引算差集
    array array_diff_assoc(array $arr1,array $arr2...);
    
    //交换数组索引和元素
    array array_flip(array $arr);
    
    //快速填充数组元素
    array array_fill(int $start,int $num,mixed $value);
    
    //统计数组元素出现次数
    array array_count_values(array $arr);
    
    //检查数组索引是否存在
    bool array_key_exists(mixed $key,array $search);
    
    //取得数组中的索引索引
    array array_keys(array $arr [, mixed $search_value [, bool $strict]]);
    
    //用回调函数处理数组
    array array_map(callback_func,array $arr1...);
    
    //判断某个值是否存在于数组
    in_array();
    
    //获取数组中当前单元的索引值
    .key($array array);
    

    字符串:

    PHP对字符串处理的完美支持,是PHP的强大功能之一。

    //分割字符串
    array explode(string $separator, string $str [,int $limit]);
    $arr = explode(',',$str);
    $arr = explode(',',$str,2);
    
    //合并字符串
    string implode(string $bds,array $arr);
    
    //比较两个字符串大小
    int strcmp(string $str1,string $str2);
    
    //字符串的替换
    string str_replace(string $search,string);
    
    //输出打印字符串
    int print(string $str);
    
    //格式化字符串
    string sprint(string $format, mixed $args);
    
    //获取字符串中的一个子串
    string substr(string $str, int $start, int $length);
    
    //删除字符串末尾的空白字符
    string rtrim(string $str);
    //删除字符串开始部分的空白字符
    string ltrim(string $str);
    //删除字符串两头的空白字符
    string trim(string $str);
    
    //获取字符串长度
    int strlen(string $str);
    
    //小写字母转大写字母
    strtolower($str);
    //大写字母转小写字母
    strtoupper($str);
    
    //将字符串中有关字符转换成HTML实体,即HTML字符编码。
    string htmlentities(string $str);
    
    //将HTML实体转换成相关的字符,和htmlentities逆运算
    string html_entity_decode(string $str);
    
    //多次生成一个字符串,重复生成
    string str_repeat(string $input, int $num);
    
    //将字符串分析到变量
    void parse_str(string $str [, array $arr]);
    
    //转换字符串到数组
    array str_split(string $str [, int $split_length]);
    
    //MD5散列加密
    string md5(string $str);
    
    //SHA1散列加密
    string sha1(string $str);
    

    PHP操作目录和文件

    目录操作:

    //打开目录
    $dh = opendir(string $path);
    
    //关闭目录
    void closedir($dh);
    
    //获取目录中下一个文件的文件名
    string readdir($dh);
    
    $dir = "D:\files";
    if($dh = opendir($dir)){
          while(($file_name = readdir($dh)) != FALSE){
                echo "file name:".$file_name;
                echo "<br/>";
                echo "<br/>";
          }
          closedir($dh);
    }
    
    //列出某一目录下的所有文件
    array scandir(string $directory);
    
    $dir = "D:\files";
    $file_list1 = scandir($dir);
    $file_list2 = scandir($dir,1);    //字母降序输出
    echo "<pre>";
    print_r($file_list1);
    print_r($file_list2);
    
    //获取PHP当前工作目录
    echo getcwd();
    
    //改变PHP当前工作目录
    chdir("dir_test");
    

    文件操作:

    //打开文件
    $fp = fopen(string $filename , string $mode);
    $fp = fopen($_SERVER['DOCUMENT_ROOT']."/../files/read.txt","w");
    $fp = fopen("D:\\data\\log.bat");
    
    //关闭文件
    fclose($fp);
    
    //读入文件的整个内容
    int readfile(string $filename);
    
    //将整个文件读入一个数组
    array file(string $filename ,[int include_path]);
    
    //整个文件内容读入一个字符串
    string get_file_contents(string $filename);
    
    //向文件写入内容
    int fwrite($fp, string $content [, int $length]);
    int fputs($fp, string $content [, int $length]);
    int file_put_contents(string $filename, string $data);
    
    //获取文件的相关信息
    fileowner(string filename);
    filesize(string filename);
    filetype(string filename);
    
    //判断文件性质的函数
    is_dir($filename);          //是否是目录
    is_file($filename);         //判断是否是普通文件
    is_readable($filename);     //判断指定的文件是否可读
    is_writeable($filename);    //判断指定的文件是否可写
    
    //获取路径中的文件名
    string basename(string $path);
    
    //获取路径中的目录名
    string dirname(string $path);
    
    //判断文件或目录是否存在
    bool file_exists(string $filename);
    
    //用PHP建立目录
    mkdir($dir_name);
    
    //删除一个目录
    rmdir($dir_name);
    
    //复制文件
    copy($source,$desc);
    
    //删除由参数$file指定的文件
    unlink($file);
    
    //文件重命名
    rename($oldname,$newname);
    
    //PHP处理文件的锁定 限制操作,避免出现两个程序同时操作同一个文件出错。
    bool flock($fp, int $operation [,int &wouldblock]);
    
    flock($fp,LOCK_SH);        //读锁定
    flock($fp,LOCK_EX);        //写锁定
    flock($fp,LOCK_UN);        //释放锁定
    flock($fp,LOCK_NB);        //防止锁定时阻塞
    
    //PHP更改文件的属性
    chmod("/home/log/del.sh",0777);    //将文件改为 所有人可读可写可执行
    chown("/etc/password","root");      //将文件的所有者改为root
    
    //获取文件时间属性
    $last_access = fileatime("data.txt");      //获取文件的上次访问时间
    $last_modify = filemtime("data.txt");      //获取文件的上次修改时间
    $last_modify_inode = filectime("data.txt");      //获取文件上次inode被修改的时间
    
    //通过HTTP协议打开文件
    $file = fopen("http://localhost/ch06/server_data.txt","r");
    
    //读取文件内容
    string fgetss(resourse $handle);
    
    //包含指定的文件到当前文件
    include("1.php");      //遇到错误产生警告
    require("1.php");      //遇到错误直接崩溃
    

    用PHP处理日期和时间

    //获取格式化的日期和时间
    string date(string $format [, int timestamp]);
    echo date('Y-m-d');
    
    //将一个日期和时间转换成一个UNIX时间戳
    int mktime(int $hour ,int $minute , int $second, int $month,int day,int $year);
    
    //返回当前日期和时间的UNIX时间戳
    $cur_timestamp = mktime();
    mktime(0,0,0,1,1);      //返回当前年份1月1日的UNIX时间戳
    
    //获取日期和时间
    array getdate([int $timestamp]); 
    
    //时间差
    $national_day_year = floor($national_time/(365*24*60*60));    //相距的年数
    $national_day_day = floor($national_time/(24*60*60));    //相距的天数
    
    //检查时间的有效性
    bool checkdate(int $month, int $day, int $year);
    

    PHP对URL、HTTP的处理

    //对URL进行编码
    string urlencode(string $str);
    //对URL进行解码
    string urldecode(string $str);
    //对URL地址进行分析
    parse_url($url);
    //生成一个HTTP头
    header(string $str_header);
    //获取HTTP头信息
    print_r($_SERVER);
    //生成cookie
    bool setcookie(string name[, string value [,int expire [, string path [,string domain [,bool secure]]]]]);
    //获取cookie
    setcookie("testcookie","ilovephp");        //设置cookie
    echo "cookie's value:".$_COOKIE['testcookie'];  //输出指定的cookie
    //cookie的有效期
    setcookie('cookie_one','i_am_cookie1',time()+60*60);  //设置cookie 1个小时后失效
    setcookie('cookie_two','i_am_cookie2',time()+60*60*24);  //设置cookie 1天后失效
    setcookie('cookie_three','i_am_cookie3',mktime(12,0,0,1,1,2018));//2018年1月1号失效
    setcookie('mycookie','delicious',0);  //浏览器关闭后失效
    
    //cookie的有效路径
    secookie('mycookie','delicious',0,'/ck_path/');
    //删除cookie
    setcookie('mycookie','');
    

    PHP中的数学运算

    //返回参数$num的绝对值
    abs($num);
    //返回不小于$num的整数
    ceil($num);
    //返回不大于$num的整数
    floor($num);
    //返回参数$num的平方根
    sqrt($num);
    //对浮点数$num根据精度$precision四舍五入
    round($num,$precision);
    
    //将十进制转换成二进制
    decbin($num);
    //将十进制转换成十六进制
    dechex($num);
    //将十进制转换成八进制
    decoct($num);
    //将二进制转换成十进制
    bindec($num);
    //将十六进制转换成十进制
    hexdec($num);
    //将八进制转换成十进制
    octdec($num);
    //将$from所表示进制的数$num转换成以$to所表示的进制数后,返回转换后进制的数字字符串
    base_convert($num,$from,$to);
    
    //生成随机数
    int mt_rand(int $min, int $max);
    

    PHP获取系统信息

    //获取环境变量
    $root = getenv('DOCUMENT_ROOT');
    //获取服务器端口
    $port = getenv('SERVER_PORT');
    //获取当前文件
    $file = getenv('SCRIPT_NAME');
    //获取当前用户
    $ua = getenv('HTTP_USER_AGENT');
    //获取请求方法
    $method = getenv('REQUEST_METHOD');
    //获取传输协议
    $protocol = getenv('SERVER_PROTOCOL');
    
    //添加一个环境变量并且为其赋值
    bool putenv(string $env_setting);
    
    $env_var = newenv;
    putenv("MY_ENV = $env_var");
    
    //返回一个数组,其中包含所有被编译和装载的模块
    $exten_list = get_loaded_extensions();  //获取载入的扩展模块
    
    //返回一个数组,包含了由参数$module指定模块的所有函数名称
    $ext_func = get_extension_funcs($extension);
    
    //获取PHP当前各类信息
    echo phpinfo();
    
    //获取当前PHP进程的进程号
    echo "该进程ID号:".getmypid();
    
    //获取当前PHP进程的所有者
    echo "该程序所有者:".get_current_user();
    

    相关文章

      网友评论

          本文标题:PHP 各种语法总结

          本文链接:https://www.haomeiwen.com/subject/mdevcxtx.html