zoukankan      html  css  js  c++  java
  • php开发面试题---2、php常用面试题二(表单提交方式中的get和post有什么区别)

    php开发面试题---2、php常用面试题二(表单提交方式中的get和post有什么区别)

    一、总结

    一句话总结:

    数据位置:get参数在url里面,post在主体里面
    数据大小:get几kb,post比较大(所以适合表单提交)
    获取方式:get传递的数据通过$_GET[]获取,post传递的数据通过$_POST[]获取。

        get是表单的默认提交方式,会把数据附加到表单的action属性所指向的URL中,在URL中可见,安全性较差;post会把数据放到http的包体中,用户一般看不到,安全性较好。
        get传递的数据量受URL长度的限制,故数据量较小,一般只有几kb;而post传递的数据量受php.ini的限制,数据量较大,如果有文件上传的话,表单的提交方式一定要用post。
        get传递的数据会被缓存下来,可能有安全性问题,而post方式没有这个问题。
        get传递的数据通过$_GET[]获取,post传递的数据通过$_POST[]获取。

    1、php继承是怎么回事?

    单继承:PHP中类的继承属于单继承,一个子类只能继承一个父类。可见性为public protected的属性和方法可以被继承。继承的方法或属性可以被重写,可见性越来越大。

    2、php中哪些区分大小写,哪些不区分?

    区分大小写:变量
    不区分大小写:类名、函数名

    3、php中error_reporting()函数的作用?

    错误报告级别:error_reporting()函数的作用是临时设置脚本执行过程中的错误报告级别。
    @抑制错误信息输出:使用 error_reporting(0) 或者在函数前面加 @,可以抑制错误信息输出,以防止错误消息泄露敏感信息。

    error_reporting(E_ALL ^ E_NOTICE);   // 除了E_NOTICE之外,报告所有的错误

    4、HTTP状态码401是什么意思?

    未经授权:在HTTP1.1中,状态码401的含义是未经授权;如果想返回“找不到文件”,可使用header函数,语句为:header(“HTTP/1.1 404 Not Found”);

    5、php中require和include的区别?

    警告信息:include 引入文件,如果引入的文件发生错误,会产生一条警告信息,后续的代码会继续执行。
    中断后续代码的执行:require引入文件,会更加严谨一些,如果引入的文件发生错误,会抛出一个致命的错误,并中断后续代码的执行。因此我们常常用require引入一个非常重要的文件。

    6、数据库 存储引擎 MyISAM 和 InnoDB的区别?

    MyISAM:快速查询,表的索引和表的数据是分开存储的
    InnoDB:支持事务、外键和行锁等操作,表的索引和数据存储在同一个文件中

    MyISAM适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好,MyISAM不支持事务、外键和行锁。MyISAM的每个数据表包括三个文件,分别是表的结构、表的索引和表的数据,表的索引和表的数据是分开存储的。

    InnoDB在写操作比较多的时候会更优秀,InnoDB支持事务、外键和行锁。InnoDB的数据表包括两个文件,表的索引和数据存储在同一个文件中,默认是共享表空间,即所有数据表的索引和数据存储在同一个文件中,但也可以设置为独立表空间(若要对数据表采用分区技术,必须设置为独立表空间)。

    7、如何得到当前PHP脚本的路径(包括所有参数)?

    $_SERVER

    echo "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];

    8、在php中不使用第三个变量,如何实现交换两个变量的值?

    借用list:<?php $a = 1; $b = 2; list($b, $a) = array($a, $b); echo $a.$b;
    拼接成字符串:<?php $a = "hello"; $b = "good"; $a = $a.$b; $b = substr($a, 0, strlen($a)-strlen($b)); $a = substr($a, strlen($b)); echo $a.$b
    <?php $a = 1; $b = 2; list($b, $a) = array($a, $b); echo $a.$b;
    
    或
    
    <?php $a = "hello"; $b = "good"; $a = $a.$b; $b = substr($a, 0, strlen($a)-strlen($b)); $a = substr($a, strlen($b)); echo $a.$b

    9、如何将a.txt文件里的内容追加到b.txt文件中?

    file_put_contents和第三个参数 FILE_APPEND

    file_put_contents('b.txt', file_get_contents('a.txt'), FILE_APPEND);

    二、PHP 10个常见面试题及答案

    参考:PHP 10个常见面试题及答案 - 小朱 - CSDN博客
    https://blog.csdn.net/xz_src/article/details/73597103

    1. PHP的基础知识点

    PHP中类的继承属于单继承,一个子类只能继承一个父类。可见性为public protected的属性和方法可以被继承。
    继承的方法或属性可以被重写,可见性越来越大。

    PHP中的变量名区分大小写,但类名、函数名不区分大小写。

    2. error_reporting()函数的作用

    error_reporting()函数的作用是临时设置脚本执行过程中的错误报告级别。

    error_reporting(E_ALL ^ E_NOTICE);   // 除了E_NOTICE之外,报告所有的错误

    使用 error_reporting(0) 或者在函数前面加 @,可以抑制错误信息输出,以防止错误消息泄露敏感信息。

    3. HTTP状态码

    在HTTP1.1中,状态码401的含义是未经授权;如果想返回“找不到文件”,可使用header函数,语句为:header(“HTTP/1.1 404 Not Found”);

    4. require和include的区别

    include 引入文件,如果引入的文件发生错误,会产生一条警告信息,后续的代码会继续执行。

    require引入文件,会更加严谨一些,如果引入的文件发生错误,会抛出一个致命的错误,并中断后续代码的执行。因此我们常常用require引入一个非常重要的文件。

    5. 存储引擎 MyISAM 和 InnoDB的区别

    MyISAM适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好,MyISAM不支持事务、外键和行锁。MyISAM的每个数据表包括三个文件,分别是表的结构、表的索引和表的数据,表的索引和表的数据是分开存储的。

    InnoDB在写操作比较多的时候会更优秀,InnoDB支持事务、外键和行锁。InnoDB的数据表包括两个文件,表的索引和数据存储在同一个文件中,默认是共享表空间,即所有数据表的索引和数据存储在同一个文件中,但也可以设置为独立表空间(若要对数据表采用分区技术,必须设置为独立表空间)。

    6. 如何得到当前PHP脚本的路径(包括所有参数)?

    echo "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];

    7. 在php中不使用第三个变量,如何实现交换两个变量的值?

    <?php $a = 1; $b = 2; list($b, $a) = array($a, $b); echo $a.$b;



    <?php $a = "hello"; $b = "good"; $a = $a.$b; $b = substr($a, 0, strlen($a)-strlen($b)); $a = substr($a, strlen($b)); echo $a.$b

    8. 自定义一个PHP函数,要求用冒泡排序对数组进行升序排列

    <?php function bubbleSort($arr){ $length=count($arr); if($length==0) return false; for($i=0;$i<$length-1;$i++){ for($j=0;$j<$length-$i-1;$j++){ if($arr[$j]>=$arr[$j+1]){ $temp=$arr[$j+1]; $arr[$j+1]=$arr[$j]; $arr[$j]=$temp; } } } return $arr; }

    9. 如何将a.txt文件里的内容追加到b.txt文件中?

    file_put_contents('b.txt', file_get_contents('a.txt'), FILE_APPEND);

    10. 表单提交方式中的get和post有什么区别?

        get是表单的默认提交方式,会把数据附加到表单的action属性所指向的URL中,在URL中可见,安全性较差;post会把数据放到http的包体中,用户一般看不到,安全性较好。
        get传递的数据量受URL长度的限制,故数据量较小,一般只有几kb;而post传递的数据量受php.ini的限制,数据量较大,如果有文件上传的话,表单的提交方式一定要用post。
        get传递的数据会被缓存下来,可能有安全性问题,而post方式没有这个问题。
        get传递的数据通过$_GET[]获取,post传递的数据通过$_POST[]获取。

     
  • 相关阅读:
    认证和授权学习2:springboot中快速使用spring security
    认证和授权学习1基于session的认证授权流程
    activiti学习11历史表和历史查询
    activiti学习10任务监听器的使用
    Vue源码阅读之VNode虚拟DOM(二)
    Vue源码阅读之Vue构造函数(一)
    useEffect使用指南
    从零搭建React+TypeScript的后台项目(三)
    从零搭建React+TypeScript的后台项目(二)
    从零搭建React+TypeScript的后台项目(一)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10857781.html
Copyright © 2011-2022 走看看