zoukankan      html  css  js  c++  java
  • PHP工程师笔试题

    PHP工程师笔试题

     

    提示:请将答案写在另外一张空白纸上,并在30分钟内完成。

     

    PHP

    1. 请写出include、require、include_once、require_noce的区别。

    include是包含,如果程序执行到这行没有找到文件会警告.但继续执行.include_once和include是一样的  只是如果包含的文件已经存在就不再包含.require是引用资源.如果资源文件没有找到.程序会致命错误并且终止执行.require_once的意思和require是一样的,只是会检验文件是否 已经被包含.

     

    1. 请写出isset()和empty()的区别。

    isset(),检测变量是否设置

    如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,”"、0、”0″、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

     

    empty(),检查一个变量是否为空

    如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节(”?”)并不等同于 PHP 的 NULL 常数。 警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。

    1. 请写出验证邮箱是否合法的正则表达式。

    /w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+/

     

    MySQL

    1. 请写出MyISAM和InnoDB有什么区别,并说明在什么场景下使用MyISAM或InnoDB?

    名称               MyISAM                     InnoDB

    -------------------------------------------------------------------------

    事务               不支持                                 支持

    数据行锁定         不支持,只有表锁定         支持

    外键约束           不支持                                 支持

    表空间大小         相对小                                相对大,最大是2倍

    全文索引           支持                                    不支持

    GIS数据            支持                                    不支持

    COUNT问题         无                                        执行COUNT(*)查询时,速度慢

    Innodb的引擎比较适合于插入和更新操作比较多的应用,而myisam则适合用于频繁查询的应用.

     

    1. 请写出这个会员数据表的结构(列名、类型、长度、属性),会员的资料有用户名、密码、邮箱、姓名、性别、固定电话、QQ和地址,会员可以使用邮箱和用户名登录。

    列名         类型         长度         属性

    ------------------------------------------------------------------

    username   varchar(50)                   PK

    pwd          char(32)

    email         varchar(255)

    name         varchar(50)

    sex      enum('0','1','2')

    tel              varchar(50)

    qq             varchar(16)

    address           varchar(255)

     

     

    1. 请写出您所知道的MySQL优化法则。

    1.为查询缓存优化你的查询,避免在语句中使用CURDATE() ,NOW(),RAND() 或是其它的诸如此类的SQL函数都不会开启查询缓存。

    2.使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。

    3.当只要一行数据时使用 LIMIT 1

    4.为搜索字段建索引

    5.在Join表的时候使用相当类型的例,并将其索引

    6.千万不要 ORDER BY RAND()

    7.避免 SELECT *

    8.永远为每张表设置一个ID,而且最好的是一个INT型的(推荐使用UNSIGNED),并设置上自动增加的AUTO_INCREMENT标志。

    9.使用 ENUM 而不是 VARCHAR

    10.尽可能的使用 NOT NULL

    11.把IP地址存成 UNSIGNED INT

    12.固定长度的表会更快

    13.拆分大的 DELETE 或 INSERT 语句

    14.越小的列会越快

    15.选择正确的存储引擎

     

    jQuery

    1. 请写出jQuery对多个复选框(checkbox)进行全选、反选和取消的代码。

    $("#div1 :checkbox").attr("checked", true);

    $("#div1 :checkbox").attr("checked", false);

    $("#div1 :checkbox").each(function () {

      $(this).attr("checked",!$(this).attr("checked"));

    });

    1. 请写出jQuery的ajax请求例子,要标明各个参数的含义以及ajax数据传输的时候有几种数据格式。

    1、jQuery.ajax(options)

    2、load(url,data,callback)

    3、jQuery.get(url,data,callback,type)

    4、jQuery.getJSON(url,data,callback)

    5、jQuery.post(url,data,callback,type)

    6、jQuery.getScript(url,[callback])

     

    如何分酒?

    1. 一个人晚上出去打了10斤酒,回家的路上碰到了一个朋友,恰巧这个朋友也是去打酒的。不过,酒家已经没有多余的酒了,且此时天色已晚,别的酒家也都已经打烊了,朋友看起来十分着急。于是,这个人便决定将自己的酒分给他一半,可是朋友手中只有一个7斤和3斤的酒桶,两人又都没有带称,如何才能将酒平均分开呢?

     

    1.先把3斤的桶装满,把三斤酒倒入7斤的桶中,到2次。这样7斤的桶中就有了6斤的酒.

    2.再把3斤的桶装满,再用装满的三斤酒把7斤的桶装满,这样3斤桶中就剩下了2斤酒

    3.把7斤桶中的酒全部倒入10斤的桶中;把3斤桶中的2斤酒倒入7斤的桶中,再把三斤桶装满。

     

    这样他的朋友就有了3斤+2斤 正好5斤酒。

     

    /*一个人晚上出去打了10斤酒,回家的路上碰到了一个朋友,恰巧
    这个朋友也是去打酒的。不过,酒家已经没有多余的酒了,且此时
    天色已晚,别的酒家也都已经打烊了,朋友看起来十分着急。于是
    ,这个人便决定将自己的酒分给他一半,可是朋友手中只有一个7斤
    和3斤的酒桶,两人又都没有带称,如何才能将酒平均分开呢?*/

    /*--------------------------------------------
        by ************** waterstar
        time ************ 1.18
    */

    #include<stdio.h>
    void main()
    {

        int m=10;
        int a,b,c;
        a=m;b=0;c=0;
        while(a!=5)            //没分出就继续
        {
            if(b==7)           //如果b满了,就倒回a中
            {
                a=a+b;
                b=c;
                c=0;
            }            
            c=3;         
            a=m-c-b;     
            if(c+b>7)         //c不能全部倒入b中
            {
                c=b+c-7; 
                b=7;
            }
            else
            {
                b=b+c;
                c=0;
            }            
        }
        printf("十斤酒剩下:%d斤 ",a);
        printf("七斤的酒桶里有:%d斤 ",b);
        printf("三斤的酒桶里有:%d斤 ",c);
    }

     

    赔了多少钱?

    10. 一天,小赵的店里来了一位顾客,挑了20元的货,顾客拿出50元,小赵没零钱找不开,就到隔壁小韩的店里把这50元换成零钱,回来给顾客找了30元零钱。过一会,小韩来找小赵,说刚才的是假钱,小赵马上给小李换了张真钱。

    问:在这一过程中小赵赔了多少钱?

     

    80

     

     

  • 相关阅读:
    POJ 1953 World Cup Noise
    POJ 1995 Raising Modulo Numbers (快速幂取余)
    poj 1256 Anagram
    POJ 1218 THE DRUNK JAILER
    POJ 1316 Self Numbers
    POJ 1663 Number Steps
    POJ 1664 放苹果
    如何查看DIV被设置什么CSS样式
    独行DIV自适应宽度布局CSS实例与扩大应用范围
    python 从入门到精通教程一:[1]Hello,world!
  • 原文地址:https://www.cnblogs.com/Athrun/p/3511536.html
Copyright © 2011-2022 走看看