• PHP工程师笔试题


    //已经定义以下php类
    class People{
        static $version = "1.02beta";
        private $age;
         
        public function m($key,$value=NULL){
            if($value == NULL){
                return $this->key;
            }else{
                $this->key = $value;
            }
        }
    }
    //1、用echo输出People的版本号
    echo People::$version;//输出 1.02beta
     
    echo "<br>";
     
    //2、实例化一个People,叫$jack,并给他的age赋值为50
    $jack = new People();
    $jack->m("age",50);
    echo $jack->m("age");//输出 50
    
    
    /**
     * 继承People的子类Child,Child在实例化时,会自动echo父类的版本号。
     */
    /**People.class.php文件**/
    class People{
        static $version = "1.02beta";
        private $age;
         
        public function m($key,$value=NULL){
            if($value == NULL){
                return $this->key;
            }else{
                $this->key = $value;
            }
        }
    }
     
    /**Child.class.php文件**/
    require "People.class.php";
    class Child extends People{
        public function __construct(){
            echo parent::$version;//输出父类版本号
        }
    }
     
    //输出父类版本号
    new Child();//输出 1.02beta
    
    echo (1 == true) ? "Yes" : "No";//输出 Yes
    
    echo "<hr/>";
    
    echo count("abc");//输出 1
    
    echo "<hr/>";
    
    echo ("abc" == true) ? "Yes" : "No";//输出 Yes
    
    echo "<hr/>";
    
    echo ("" == false) ? "Yes" : "No";//输出 Yes
    
    echo "<hr/>";
    
    echo (0 == false) ? "Yes" : "No";//输出 Yes
    
    echo "<hr/>";
    
    $arr = array();
    echo $arr ? "Yes" : "No";//输出 No
    
    echo "<hr/>";
    
    $num = 0;
    echo empty($num) ? "Yes" : "No";//输出 Yes
    
    /**
     * 设计function check($str)验证$str是否仅由26个英文字母(含大小写)组成,是返回true,否则返回false.
     */
    function check($str){
    	if(preg_match("/^[a-zA-Z]*$/", $str)){
    		return true;
    	}else{
    		return false;
    	}
    }
    $str = "abcABC";
    echo check($str);//输出 true
    
    <?php
    /**
     * 设计function arr_loop(),使得输入形如array("a","b","c")的数组,返回array("b","c","a")
     * 即第一个元素变成最后一个元素。
     */
    function arr_loop($arr){
    	$first = array_shift($arr);
    	array_push($arr,$first);
    	return $arr;
    }
    
    $arr = array("a","b","c");
    print_r(arr_loop($arr));//输出 Array ( [0] => b [1] => c [2] => a )
    
    /**
     * 已知网址格式的字符串$url,设计function get_param($url),返回所有
     * get参数的数组.
     * 例如:$url = "http://wwww.baidu.com/order.php?year=2012&type=done"
     * 返回:array("year"=>"2012","type"=>"done");
     */
    function get_param($url){
    	$list = array();
    	$urls = parse_url($url);
    	$arr = explode("&",$urls['query']);
    	foreach ($arr as $value) {
    		$temp = explode("=", $value);
    		$list[$temp[0]] = $temp[1];
    	}
    	return $list;
    }
    $url = "http://wwww.baidu.com/order.php?year=2012&type=done";
    print_r(get_param($url));//输出 Array ( [year] => 2012 [type] => done )
    
    <?php
    /**
     * 设计function find_max($a,$b,$c),用最少代码,返回三个浮点数中的最大值。
     */
    function find_max($a,$b,$c){
    	return (($a > $b ? $a : $b) >  ($a > $c ? $a : $c)) ? ($a > $b ? $a : $b) : ($a > $c ? $a : $c);
    }
    $a = 1.1;
    $b = 1.2;
    $c = 1.3;
    echo find_max($a,$b,$c);//输出 1.3
    
    /**
     * 已知数据表如下,求其sql查询。
     *        user表                order表                 item表
     * -------------------- * ------------------- * -----------------------
     * | uid | name | age | * | oid | uid | iid | * | iid | name  | price |
     * -------------------- * ------------------- * -----------------------
     * |  1  | jack |  25 | * |  17 |  1  | 201 | * | 201 | apple |   4   | 
     * -------------------- * ------------------- * -----------------------
     * |  2  | mike |  40 | * |  18 |  1  | 202 | * | 202 | banana|   7   |
     * -------------------- * ------------------- * -----------------------
     *                      * |  19 |  2  | 202 | * 
     *                      * ------------------- *
     */
    //1、请写出sql查询语句:获得30岁以上的顾客的所有订单的消费总额。
    SELECT
    	SUM(`item`.price)
    FROM
    	`user`
    JOIN `order` ON `user`.uid = `order`.uid
    JOIN `item` ON `item`.iid = `order`.iid
    WHERE
    	`user`.age > 30;
    
    //2、解析三种索引index、primary、unique之不同
    primary主键,是唯一的索引且不能为空。
    index是普通索引。
    unique是唯一索引,不允许有重复。
    
    //测试sql
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for item
    -- ----------------------------
    DROP TABLE IF EXISTS `item`;
    CREATE TABLE `item` (
      `iid` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(255) DEFAULT NULL,
      `price` decimal(10,2) DEFAULT NULL,
      PRIMARY KEY (`iid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=203 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of item
    -- ----------------------------
    INSERT INTO `item` VALUES ('201', 'apple', '4.00');
    INSERT INTO `item` VALUES ('202', 'banana', '7.00');
    
    -- ----------------------------
    -- Table structure for order
    -- ----------------------------
    DROP TABLE IF EXISTS `order`;
    CREATE TABLE `order` (
      `oid` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `uid` int(11) DEFAULT NULL,
      `iid` int(11) DEFAULT NULL,
      PRIMARY KEY (`oid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of order
    -- ----------------------------
    INSERT INTO `order` VALUES ('17', '1', '201');
    INSERT INTO `order` VALUES ('18', '1', '202');
    INSERT INTO `order` VALUES ('19', '2', '202');
    
    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
      `uid` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(255) DEFAULT NULL,
      `age` int(11) DEFAULT NULL,
      PRIMARY KEY (`uid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of user
    -- ----------------------------
    INSERT INTO `user` VALUES ('1', 'jack', '24');
    INSERT INTO `user` VALUES ('2', 'mike', '40');
    
  • 相关阅读:
    Jenkins 的安装部署
    Python /usr/bin/python
    java学习基础 项目
    Java 并行与并发
    c# 将一个窗体显示在主窗体中
    java.io.IOException: open failed: EACCES (Permission denied) 问题解决
    android中创建模拟器的 SDCard
    Android学习笔记__2__Android工程目录结构
    Android学习笔记__3__Android应用程序组成
    Android学习笔记__1__Android体系架构
  • 原文地址:https://www.cnblogs.com/yxhblogs/p/6811173.html
Copyright © 2020-2023  润新知