zoukankan      html  css  js  c++  java
  • PHP开发笔记(一)

    PHP返回json空数组或空对象的方法

     获取空对象:json_msg_data(1,'上传失败',(object)array());

    得到的结果:

    {"code":1,"msg":"上传失败","data":{}}

    获取空数组: json_msg_data(1,'上传失败',[])

    得到的结果:

    {"code":1,"msg":"上传失败","data":[]}

    php开发中->和=>的用法和区别一句话概括起来就是,=>是数组成员访问符号,->是对象成员访问符号。

    比如: $array = array("zms"=>"zms.php"); //定义了一个数组,包含一个数组成员:键名为zms,值为zms.php

    $this->$name = $value。 $this 在php语言里是个特定的变量,它代表了类本身,->是访问其类成员的操作符,$this->$name = $value,这句代码意思是:将当前类的name变量的值设置为 $value。 

    在PHP中“::”这个叫范围解析操作符,又名域运算符。 “::”符号可以认为是与C语言中的“.”相似的,而它更像C++中(Perl)的::类范围操作符。 php调用类的内部静态成员,或者是类之间调用就要::。

    echo和print的区别
    PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。
    $r = print “Hello World”; 
    这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。
    include与require的区别
    include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php:
    if($a){   
    include(“a.php”);   

    而require()则和include()不同,不管$a取何值,下面的代码将把文件a.php包含进文件里:
    if($a){   
    require(“a.php”);   

    在错误处理方面,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行!但requre却会给你来个致命错误。
    当然,从字面意思上我们也可以理解七分:requre是很强硬的请求、要求的意思。
    require_once()和include_once()语句
    题外话了,因为长的像,简单require_once()和include_once()语句分别对应于require()和include()语句。require_once() 和include_once()语句主要用于需要包含多个文件时,可以有效地避免把同一段代码包含进去而出现函数或变量重复定义的错误。
    空字符串(”)和NULL的区别
    PHP中空字符串和NULL都是以值为0存储的,但是他们的类型并不一样,你可以试一下echo gettype(”);和echo gettype(NULL);你会发现他们打印出来的分别是string和NULL,当然还有0也容易混淆,你可以试试echo gettype(0);打印一下类型,会发现0的类型是integer(整型),可见字符串(”)、NULL和0是“等值”但不等类型。
    isset和 empty的区别
    从字面意思上我们就可以明白:empty是判断一个变量是否为“空”,而isset 则是判断一个变量是否已经设置。但是这里有一点绝对要注意起来:当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置。比如当我们检测$id 变量的时候,当$id=0 ,用empty和isset来检测变量$id是否已经配置,两都将返回不同的值:empty 认为没有配置,isset 则能够取得 $id 的值,看下边例子:
       $id=0;  
       emptyempty($id)?print “我是空的”:print “我是$id .”; //结果:我是空的  
       !isset($id)?print “我是空的”:print “我是$id .”;//结果:我是0  
    ==(等)和===(恒等)的区别
    回顾上面第四条空字符串(“”)和NULL的区别,再来看一个例子:
    ” == NULL;  
    ” === NULL; 
    运行之后你会发现第一个为true,而第二个则为false!可见==只是比较值是否相等,而===则不但比较值,还会比较类型,更为严格。

    ThinkPHP5单文件多文件上传

    public function testupload()
        {
    
             // 获取表单上传文件 例如上传了001.jpg    
             $file = request()->file('image');        
             // 移动到框架应用根目录/public/upload/ 目录下    
             $info = $file->move(ROOT_PATH . 'public' . DS . 'upload');    
             if($info){        
                 // 成功上传后 获取上传信息        
                 // 输出 jpg  $img_info[0]宽度  $img_info[1]高度 $img_info['mime']        
                 $img_info = getimagesize(ROOT_PATH . 'public' . DS . 'upload' . DS .$info->getSaveName());
                 print_r($img_info);die;
                 echo $info->getExtension();        
                 // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg        
                 echo $info->getSaveName();        
                 // 输出 42a79759f284b767dfcb2a0197904287.jpg        
                 echo $info->getFilename();
                }
                 else{        
                     // 上传失败获取错误信息        
                    echo $file->getError();    
                } 
        }
    
        public function testuploads()
        {
               // 获取表单上传文件
               $files = request()->file('image');
               $imglist='';
               foreach($files as $file)
               {        
                    // 移动到框架应用根目录/public/uploads/ 目录下        
                    $info = $file->move(ROOT_PATH . 'public' . DS . 'upload');        
                    if($info){                     
                        $imglist.='public/upload/'.$info->getSaveName().',';
                        //echo $info->getSaveName();
                    }else{            
                        // 上传失败获取错误信息            
                        echo $file->getError(); 
                    } 
                } 
    
                $imglist=substr($imglist,0,strlen($imglist)-1);
    
                echo $imglist;
    
        }
  • 相关阅读:
    Discrete Logging
    P1378 油滴扩展
    P3390 【模板】矩阵快速幂
    RMQ算法
    P1372 又是毕业季I
    P1440 求m区间内的最小值
    高效判断素数方法
    阿尔贝喝我
    浙江大学PAT上机题解析之2-11. 两个有序链表序列的合并
    顺序队列之C++实现
  • 原文地址:https://www.cnblogs.com/zhengluwei/p/7818830.html
Copyright © 2011-2022 走看看