美文网首页
php面试题之一(基础部分) --- 2021-07-07

php面试题之一(基础部分) --- 2021-07-07

作者: 一位先生_ | 来源:发表于2021-09-02 09:05 被阅读0次
    1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部)
      strlen和mb_strlen都是用于获取字符串长度。
      strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数。如果是多字节编码,如 gbk 和 utf-8,使用 strlen 得到是该字符的总字节数;
      可以使用mb_strlen获取其字符个数,使用mb_strlen 要注意两点,一是要开启 mbstring 扩展,二是要指定字符集。

    总结:
    strlen函数不管是字符串是单字节编码还是多字节编码,函数返回的结果都是字符串的总字节数。
    mb_strlen函数当字符串是单字节编码时,函数返回的结果是字符串的总字节数。当字符串是多字节编码时,函数返回的结果是字符串的个数。
    mb_strlen函数在没有指定字符编码时,表示使用默认字符编码,即单字节编码,函数返回的是字符串的总字节数。
    PHP默认是单字节编码(内部字符编码),多字节编码方式有gbk、utf-8等。
    示例:

    <?php
        /*
            strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部)
        */
        header('Content-Type:text/html;charset=utf-8');
        // (1)英文字符串
        $str1 ="duang~";
        echo strlen($str1);//总字节数为6,内部字符编码,单字节编码
        echo "<br />";
        echo mb_strlen($str1);//总字节数为6,内部字符编码
        echo "<br />";
        echo mb_strlen($str1,'utf-8');//总字节数或字符长度为6,指定字符编码(utf-8),多字节编码
        echo "<hr />";
    
        // (2)中文字符串
        $str2 = "你是我的小苹果";
        echo strlen($str2);//总字节数为21,内部字符编码,单字节编码
        echo "<br />";
        echo mb_strlen($str2);//总字节数为21,内部字符编码
        echo "<br />";
        echo mb_strlen($str2,'utf-8');//字符长度为7,指定字符编码(utf-8),多字节编码
    ?>
    

    相关题目 1:实现中文字串截取无乱码的方法。
    方法一,使用 php 内置函数 mb_substr()
    方法二,自定义函数,以 utf-8 为例,如下:

    <?php
        /*
            相关题目 1:实现中文字串截取无乱码的方法。
        */
        header('Content-Type:text/html;charset=utf-8');
    
        //=================方法一=======================
        $str = "你是我的温暖阳光";
        echo mb_substr($str, 2,4,'utf-8');//输出 我的温暖
    
        // ================方法二=======================
        /**
         * utf8编码字符串截取无乱码
         * @param $str string 要处理的字符串
         * @param $start int 从哪个位置开始截取
         * @param $length int 要截取字符的个数
         * @return string 截取后得到的字符串
        */
        function substr_utf8($str,$start,$length = null)
        {
            $sep = "";
            $arr = array_slice(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length);
            return join($sep,$arr);
        }
        // 示例
        $str = "你是我的温暖阳光";
        echo substr_utf8($str,2,4);//输出 我的温暖
    ?>
    

    相关题目2:如何求解字符串“中国2北333京”的字符数(一个中文一个字符),并找到第四个字符“北”
    方法一,使用php内置函数,确保配置中已打开mbstring扩展
    方法二,自定义函数实现求其长度,截取使用上面定义的substr_utf8

    <?php
        /*
            相关题目 2:如何求解字符串“中国2北333京”的字符数(一个中文一个字符),并找到第四个字符“北”
        */
        header('Content-Type:text/html;charset=utf-8');
    
        //=================方法一=======================
        $str = "中国2北333京";
        echo mb_strlen($str,'utf-8');//输出字符数 8
        echo mb_substr($str, 3,1,'utf-8');//输出 北
    
        // ================方法二=======================
        /**
         * utf8编码字符串截取无乱码
         * @param $str string 要处理的字符串
         * @param $start int 从哪个位置开始截取
         * @param $length int 要截取字符的个数
         * @return string 截取后得到的字符串
        */
        function substr_utf8($str,$start,$length = null)
        {
            $sep = "";
            $arr = array_slice(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY), $start,$length);
            return join($sep,$arr);
        }
    
        /**
         * utf8编码字符串计算长度
         * @param $str string 要处理的字符串
         * @return int 字符串的长度或字符个数
        */  
        function strlen_utf8($str)
        {
            return count(preg_split("//u", $str,-1,PREG_SPLIT_NO_EMPTY));
        }
    
        // 示例
        $str = "中国2北333京";
        echo strlen_utf8($str);//输出字符数 8
        echo substr_utf8($str,3,1);//输出 北
    ?>
    
    1. 下列哪个函数是用正则表达式将字符串分割到数组中 ( )
      A. split
      B. implode
      C. explode
      D. join
      答案:A

    2. 写出下列程序的输出结果(新浪网技术部)

    <?php
        /*
            写出下列程序的输出结果(新浪网技术部)
        */
        $x = 87;
        $y = ($x % 7) * 16;
        $z = $x > $y ? 1 : 0;
        echo $z;
    ?>
    

    答案:1

    1. 写出下列几个预定义全局变量的作用 (新浪网技术部)
    $_SERVER['DOCUMENT_ROOT']//当前运行脚本所在的文档根目录
    $_SERVER['HTTP_HOST ']//当前请求的 Host: 头部的内容
    $_SERVER['REMOTE_ADDR']//正在浏览当前页面用户的 IP 地址
    $_SERVER['HTTP_REFERER']//链接到当前页面的前一页面的 URL 地址
    $_SERVER['SERVER_NAME']//当前运行脚本所在服务器主机的名称
    $_FILES //包含有所有上传的文件信息
    S_FILES['userfile']['name']//客户端机器文件的原名称
    $_FILES['userfile']['type']//文件 MIME 类型,如果浏览器提供此信息的话,如“image/gif”。
    $_FILES['userfile']['size']//已上传文件的大小,单位为字节
    $_FILES['userfile']['tmp_name']//文件被上传后在服务端储存的临时文件名
    $_FILES['userfile']['error']//和该文件上传相关的错误代码
    
    1. include 和 require 都能把另外一个文件包含到当前文件中,他们有什么区别?Include 和include_once 又有什么区别?(新浪网技术部)
      二者区别只有一个,那就是对包含文件的需求程度。include 就是包含,如果被包含的文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。而 require 意思是需要,如果被包含文件不存在或者无法打开的时候,则会提示错误,并且会终止程序的执行。
      这两种结构除了在如何处理失败之外完全一样。
      once 的意思是一次,那么 include_once 和 require_once 表示只包含一次,避免重复包含。

    相关题目 1:What is the difference between include & include_once? include & require?(Yahoo)
    相关题目 2:语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区
    别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
    在如何处理失败时,include()产生一个警告而require()则导致一个致命错误;require_once()/include_once()

    相关题目 3:What functions can you use to add library code to the currently running script?(Yahoo)
    include、require

    1. 用最少的代码写一个求 3 值最大值的函数. (51.com 笔试题)
    <?php
        /*
            6. 用最少的代码写一个求 3 值最大值的函数. (51.com 笔试题)
        */
        // 定义函数
        function maxnum($a,$b,$c)
        {
            return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c);
        }
    
        // 调用实例
        echo maxnum(24,15,8);
    ?>
    
    1. 简述 POST 和 GET 传输的最大容量分别是多少? (51.com 笔试题)
      POST 根据你 php.ini 文件配置(默认是 8M)
      GET 的话大小限制在 2KB

    相关题目:表单中 get 与 post 提交方法的区别?
    get 是发送请求 HTTP 协议通过 url 参数传递进行接收,而 post 是实体数据,可以通过表单提交大量信息。

    1. 有三个 php 文件位于同一目录下,内容如下所示。使用浏览器访问 c.php,请问是否存在问题。如果存在问题,请指出修正方法并写出浏览器查看效果 ,如果不存在问题,请写出浏览器查看效果(酷讯 PHP 工程师笔试题)

    A.php:

    <?php
        function fa(){
            echo "in Function A\n";
        }
    ?>
    

    B.php:

    <?php
        include 'a.php';
        function fb() {
            fa();
            echo "in Function B\n";
        }
    ?>
    

    C.php:

    <?php
        include 'a.php';
        include 'b.php';
        fa();
        fb();
    ?>
    

    答案:存在问题,a.php 被包含了两次,导致 fa()函数重复定义,使用 include_once 避免重复包含。

    1. echo(),print(),print_r()的区别?(新浪)
      echo, print是PHP语句print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
      print只能打印出简单类型变量的值(如int,string)
      print_r可以打印出复杂类型变量的值(如数组,对象)

    echo -- 输出一个或者多个字符串
    print --输出一个字符串
    print_r -- 打印关于变量的易于理解的信息。

    在实际使用中, print 和 echo 两者的功能几乎是完全一样。
    可以这么说,凡是有一个可以使用的地方,另一个也可以使用。但是,两者之间也还是一个非常重要的区别:
    在 echo 函数中,可以同时输出多个字符串,而在 print 函数中则只可以同时输出一个字符串。同时,echo函数并不需要圆括号,所以echo函数更像是语句而不像是函数。
    echo 和 print 都不是函数,而是语言结构,所以圆括号都不是必需的。他们的区别在于:
    (1) echo可以输出多个字符串,像下面这样:
    echo 'a','b','c';
    如果你非要加上圆括号,注意写成echo ('a','b','c');是错误的,应该写成:
    echo ('a'),('b'),('c');
    它没有像函数的行为,所以不能用于函数的上下文
    (2) print只能输出一个字符串,它可以表现得像一个函数,比如你可以如下使用:
    $ret = print 'Hello World';
    (有返回值所以能够用在更复杂的表达式中,可以判断是否输出成功等表达式)所以它能用在更复杂的表达式中。

    另外,echo的效率相对比较快~

    如下代码:

    <?php
        $a='hello ';
        $b='php world!';
        echo $a,$b.'<br />';//echo 可以用逗号分隔字符串变量来显示
        print $a.$b.'<br />';//而print不能使用逗号,只能用点号分隔
        print $a,$b.'<br />';//使用逗号时报错。
    ?>
    

    说明:

    ,是 echo 本身支持的一种语法,而.则是字符串连接操作符,使用,的效率要高一些。(少了连接运算)
    echo可以使用,来分隔字符串变量,也可以使用,来分隔字符串变量;print只能使用.来分隔字符串变量。
    echo效率比print高
    总结:
    echo命令和print命令相同,没有区别
    echo()和print()有区别:
    echo()没有返回值,与echo命令相同
    print()有返回值,总是返回1

    补充:
    printf()和sprintf()类似,均为格式化输出,不同的是前者输出到标准输出,后者输出到变量

    相关题目:What is the difference between "print()" and "echo( )"? (腾讯)
    answer: print is a function,echo is a language construct

    1. 用 PHP 打印出前一天的时间格式是 2006-5-10 22:21:21。
    <?php
        /*
            用 PHP 打印出前一天的时间格式是 2006-5-10 22:21:21。
        */
        // ================方法一==================
        echo date("Y-m-d H:i:s",time() - 3600*24);
        echo "<br />";
        // ================方法二==================
        echo date("Y-m-d H:i:s",strtotime("-1 day"));
        echo "<br />";
    
        // 将表单中提交的时间字符串"2015-6-23"转成时间戳
        $date = strtotime("2015-6-23");
        echo $date;
    ?>
    

    说明:

    使用strtotime可以将任何字符串的时间表示(now,seconds,day,week等)转换成时间戳,仅针对英文。
    在实际开发的时候,strtotime非常有用,因为对于表单来说,提交的数据都是字符串。比如,“2013-4-27”需要将其转换成时间戳然后存到数据库中。
    相关题目:求两个日期的差数,例如 2009-3-1 ~ 2009-4-4 的日期差数
    (strtotime("2009-4-4")-strtotime("2009-3-1"))/3600*24

    1. 不使用第三个变量交换两个变量的值
    <?php
        /*
            不使用第三个变量交换两个变量的值
        */
        // ================方法一==================
        $a = "PHP";
        $b = "MySQL";
        echo '$a='.$a.'<br />';
        echo '$b='.$b.'<br />';
    
        list($a,$b) = array($b,$a);
    
        echo '$a='.$a.'<br />';
        echo '$b='.$b.'<br />';
    
        echo "<hr />";
        // ================方法二==================
        $a = "PHP";
        $b = "MySQL";
        echo '$a='.$a.'<br />';
        echo '$b='.$b.'<br />';
    
        $a = $a.'&'.$b;//使用&连接两个字符串
    
        // 根据&进行字符串分割
        $b = explode('&', $a);
        $a = $b[1];
        $b = $b[0];
    
        echo '$a='.$a.'<br />';
        echo '$b='.$b.'<br />';
    ?>
    
    1. 请说明 php 中传值与传引用的区别。什么时候传值什么时候传引用?
      变量默认总是传值赋值。
      那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。
      PHP 也提供了另外一种方式给变量赋值:引用赋值。
      这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)。
      对象默认是传引用。
      对于较大的数据,传引用比较好,这样可以节省内存的开销。
      相关题目 1:What would the following code print to the browser? Why?
    <?php
        $num = 10;
        function multipy($num){
            $num = $num +10;
        }
        multipy($num);
        echo $num;   
    ?>
    

    输出 10

    相关题目 2:What is the difference between a reference and a regular variable? How do you pass by reference & why would you want to?(Yahoo)
    reference 传送的是变量的地址而非它的值,所以在函数中改变一个变量的值时,整个应用都见到这个变量的新值。
    一个 regular variable 传送给函数的是它的值,当函数改变这个变量的值时,只有这个函数才见到新值,应用的其他部分仍然见到旧值。

    1. 将 1234567890 转换成 1,234,567,890 每 3 位用逗号隔开的形式。(百度)
    <?php
        $str ='1234567890';
        function str($str)
        {
            // 反转字符串,得到0987654321
            $str = strrev($str);
            // 使用逗号分割字符串,得到098,765,432,1,
            $str = chunk_split($str,3,',');
    
            // 再次反转字符串,得到,1,234,567,890
            $str = strrev($str);
            // 去掉左边的",",得到1,234,567,890
            $str = ltrim($str,',');
            return $str;
        }
        echo str($str);
    ?>
    

    相关题目 1:如何实现字符串翻转?
    strrev(),不过这种方法都不能解决中文字符串翻转的问题,会出错的。

    <?php
        header("Content-Type:text/html;charset=utf-8");
    
        /**
         * 反转utf8编码的中文字符串
         * @param string $str
         * @return string
        */
        function strrev_utf8($str)
        {
            return join("",array_reverse(preg_split("//u", $str)));
        }
    
        // 实例
        $str = "悄悄是别离的笙箫";
        echo strrev_utf8($str);
    ?>
    

    相关题目 2:假设现在有一个字符串 www.baidu.com 如何使用 PHP 对它进行操作使字符串以 moc.udiab.输出? (亿邮)

    <?php
        $str = "www.baidu.com";
        echo strrev(str_replace('www','',$str));
    ?>
    
    1. 用 PHP 写出显示客户端 IP 与服务器 IP 的代码。
      客户端 IP:_SERVER["REMOTE_ADDR"] 服务器端 IP:_SERVER["SERVER_ADDR"]

    2. 简述如何得到当前执行脚本路径,包括所得到参数。
      获取当前执行脚本路径使用_SERVER["SCRIPT_FILENAME"]或__FILE__ 获取参数,使用_SERVER["QUERY_STRING"]

    3. What is the difference between foo() & @foo()?(Yahoo)
      foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
      @foo() 在执行这个函式时,会隐藏所有上述的错误讯息。
      很多应用程序都使用 @mysql_connect() 和 @mysql_query 来隐藏 mysql 的错误信息,这是不对的,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。

    4. 下面哪个选项没有将 john 添加到 users 数组中? ( 百度 )
      A. users[ ] = "john"; B. array_add(users, "john");
      C. array_push(users, "john"); D.users ||= "john" ;
      答案:BD

    5. 检测一个变量是否有设置的函数?是否为空的函数是?
      isset 检测一个变量是否设置
      empty 检测是否为空
      注意二者的区别,如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array() 以及没有任何属性的对象都将被认为是空的。
      isset是检测变量是否设置/定义,empty是检测已定义的变量的值是否为空。

    6. 在 PHP 中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量______中;而链接到当前页面的的前一页面 URL 记录在预定义变量______中。
      当前脚本名称:_SERVER["PHP_SELF"]或者_SERVER["SCRIPT_NAME"];
      链接到当前页面的前一页面的 URL 地址:$_SERVER["HTTP_REFERER"]。

    7. sort()、assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?
      sort(),根据数组中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当数组索引键的值无关紧要时用来把数组排序。
      assort(),PHP 没有 assort() 函式,所以可能是 asort() 的笔误。
      asort(),对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。
      ksort(),根据数组中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的关联数组。

    8. 在 PHP 中 error_reporting 这个函数有什么作用?
      打开或者关闭错误报告,如:
      error_reporting(0);
      error_reporting(E_ALL & ~ E_NOTICE);
      error_reporting(E_ALL);

    相关题目:error_reporting(2047) 什么作用?(新浪)
    2047 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024
    其中:
    1 对应 E_ERROR,2 对应 E_WARNING,4 对应 E_PARSE,
    8 对应 E_NOTICE,16 对应 E_CORE_ERROR,32 对应 E_CORE_WARNING
    ,64 对应 E_COMPILE_ERROR,128对应 E_COMPILE_WARNING,256 对应 E_USER_ERROR,
    512 对应 E_USER_WARNING,1024 对应 E_USER_NOTICE。
    error_reporting(2047)意味着上述错误都会显示出来

    1. 写出以下程序的输出结果 (CBSI)
    <?php
        $str = 'cd';
        $$str = 'hotdog';//$cd = 'hotdog';
        $$str .= 'ok';//$cd .= 'ok';
    
        echo $cd;
    ?>
    

    hotdogok

    相关题目:什么是可变变量?
    获取一个普通变量的值作为这个可变变量的变量名。

    1. 常量如何定义? 如何检测一个常量是否被定义?
      定义常量:define()
      检测常量是否定义:defined()
      如:
    define("TEST","happy new year!");
    if( defined("TEST")){
        echo TEST;
    }
    
    1. 执行程序段
      <?php echo 8%(-2) ?>
      将输出 0
      %为取模运算,输出 0
      a %b其结果的正负取决于 $a 的符号。
      echo ((-8)%3)."<br />";//输出 -2
      echo (8%(-3))."<br />";//输出 2

    2. 数组函数 arsort 的作用是____;语句 error_reporting(2047)的作用是____。
      arsort:对数组进行逆向排序并保持索引关系
      error_reporting(2047)的作用 report All errors and warnings,见 21 题中相关题目。

    3. 以 Apache 模块的方式安装 PHP,在文件 http.conf 中首先要用语句____动态装载 PHP模块,然后再用语句____使得 Apache 把所有扩展名为 php 的文件都作为 PHP 脚本处理。
      LoadModule php5_module "c:/php/php5apache2.dll";
      AddType application/x-httpd-php .php

    4. 一个函数的参数不能是对变量的引用,除非在 php.ini 中把____设为 on.
      allow_call_time_pass_reference :是否启用在函数调用时强制参数被按照引用传递,默认关闭。

    5. 在 PHP 中,heredoc 是一种特殊的字符串,它的结束标志必须____顶格写,并且不能包含任何其它字符除";"
      29.echo count("abc"); 输出什么?(新浪?)
      输出 1

    count :计算数组中的单元数目或对象中的属性个数,通常是一个 array,任何其它类型都只有一个单元。
    对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。
    如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。

    相关题目:What will be the output of the following PHP code:(腾讯)
    <?php
    echo count(strlen("http://php.net"));
    ?>
    answer: 1

    1. 写个函数用来对二维数组排序(新浪)
    <?php
        /**
         * 根据某列对二维数组进行排序
         * @param $arr array 要排序的二维数组
         * @param $row string 排序依据的某列
         * @param $type string asc表示正序,为默认值;desc表示逆序
         * @param array 返回排序后的二维数组
        */
        function array_sort($arr,$row,$type ='asc')
        {
            $arr_temp = array();
            // 将排序依据作为数组的键名
            foreach ($arr as $v) {
                $arr_temp[$v[$row]] = $v;
            }
            // print_r($arr_temp);
    
            // 按照键名对二维数组进行排序,并保持索引关系
            if ($type == 'asc') {
                ksort($arr_temp);
            } elseif($type == 'desc') {
                krsort($arr_temp);
            }
    
            // 返回排序结果
            return $arr_temp;
        }
    
        // 实例
        $person = array(
            array('id'=>2,'name'=>'zhangsan','age'=>23),
            array('id'=>5,'name'=>'lisi','age'=>28),
            array('id'=>3,'name'=>'apple','age'=>17)
        );
        echo "<pre>before:<br />";
        print_r($person);
        echo "</pre>";
    
        echo "<hr />";
    
        $person2 = array_sort($person,'name');
        echo "<pre>after:<br />";
        print_r($person2);
        echo "</pre>";
    ?>
    
    1. 写 5 个不同的自己的函数,来获取一个全路径的文件的扩展名,允许封装 php 库中已有的函数。(新浪)
    <?php
        /*
            写 5 个不同的自己的函数,来获取一个全路径的文件的扩展名,允许封装 php 库中已有的函数。(新浪)
        */
        // 方法一
        function ext_name1($path){
            $path_info = strrchr($path, '.');//.php
            return ltrim($path_info,'.');
        }
    
        // 方法二
        function ext_name2($path){
            $path_info = substr($path,strrpos($path, '.'));
            return ltrim($path_info,'.');
        }
    
        // 方法三
        function ext_name3($path){
            $path_info = pathinfo($path);
            return $path_info['extension'];
        }
    
        // 方法四
        function ext_name4($path){
            $arr = explode('.', $path);
            return $arr[count($arr)-1];
        }
    
        // 方法五
        function ext_name5($path){
            $pattern = '/^[^\.]+\.([\w]+)$/';
            return preg_replace($pattern, '${1}', basename($path));
        }
    
        // 实例
        $path = str_replace('\\', '/', __FILE__);
        echo "$path<br />";
        echo ext_name1($path);echo "<br />";
        echo ext_name2($path);echo "<br />";
        echo ext_name3($path);echo "<br />";
        echo ext_name4($path);echo "<br />";
        echo ext_name5($path);echo "<br />";
    ?>
    
    1. PHP 是什么,它能干些什么?
      PHP( Hypertext Preprocessor,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。
      PHP 主要是用于服务端的脚本程序,因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收Cookies。但 PHP 的功能远不局限于此。
      PHP 脚本主要用于以下三个领域:

    服务端脚本。这是 PHP 最传统,也是最主要的目标领域。
    命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。
    编写桌面应用程序。

    1. Name a few ways to output (print) a block of HTML code in PHP?(Yahoo)
      你可以使用 PHP 中任何一种输出语句,包括 echo、print、printf,大部分人都使用如下例的 echo:
      echo "My string $variable";
      你也可以使用这种方法:

    echo <<<END
    This text is written to the screen as output and this $variable is parsed too. If you wanted you
    can have <span> HTML tags in here as well.</span> The END; remarks must be on a line of itsown, and can't contain any extra white space.
    END;

    1. 写出以下程序的输出结果 (CBSI)
    <?php
        $b = 201;
        $c = 40;
        $a = $b > $c ? 4 : 5;
        echo $a;
    ?>
    

    输出结果为 4

    1. arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值,并请将数组的值用','号分隔并合并成字串输出。 打印第一个元素:echoarr[0];
      以’,’合并成字符串:echo implode(',',$arr);

    2. a = 'abcdef'; 请取出a 的值并打印出第一个字母
      echo a{0} 或 echoa[0]

    相关题目:string="abcdefg",那么string{4}的值是? (卓望)
    值是 e

    1. What does === do? What's an example of something that will give true for '', but not'='? (Yahoo)
      === 表示全等,是指的两个变量的值和类型都相等。
      如 if (strpos('abc','a') == false) 和 if (strpos('abc','a') === false)

    2. Which of the following snippets prints a representation of 42 with two decimal places?(腾讯)
      A. printf("%.2d\n", 42);
      B. printf("%1.2f\n", 42);
      C. printf("%1.2u\n", 42);
      answer:B

    3. Given text = 'Content-TypeType:text/xml'; Which of the following prints 'text/xml'? (腾讯) A. print substr(text, strchr(text, '😂); B. print substr(text, strchr(text, '😂 + 1); C. print substr(text, strpos(text, '😂 + 1); D. print substr(text, strpos(text, '😂 + 2); E. print substr(text, 0, strchr($text, '😂);
      answer:C
      分析:

    <?php
        $text = 'Content-Type:text/xml';
        print substr($text, strchr($text,':'));//出错,strchr返回的是字符串
        echo "<br />";
        print substr($text, strchr($text,':')+1);//strchr返回的是字符串,字符串+1,返回ontent-Type:text/xml
        echo "<br />";
        print substr($text, strpos($text,':')+1);//返回text/xml
        echo "<br />";
        print substr($text, strpos($text,':')+2);//返回ext/xml
        echo "<br />";
        print substr($text, 0,strchr($text,':'));//出错,strchr返回的是字符串
        echo "<br />";
    ?>
    
    1. What is the value of a? <?phpa = in_array('01',array('1')) == var_dump('01' == 1);
      ?>
      A. True
      B. False
      answer:A

    相关文章

      网友评论

          本文标题:php面试题之一(基础部分) --- 2021-07-07

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