zoukankan      html  css  js  c++  java
  • php 有意思的小题

    /**

    * 你的是一个数字和一个字符串进行比较,PHP会把字符串转换成数字再进行比较。
    * PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。
    *
    **/
    1)$a =”abc”;
    if($a==0){
    echo “等于0”;
    }else{
    echo “不等于0”;
    }

    //输出结果是0;

    2)$num1 = ‘1’;
    $num2 = ‘a1’;
    echo $num1 + $num2;

    //结果输出1;

    //这里,数字与字符相加,PHP会把字符串转换成数字再进行比较。字符串开头没有数字就输出0。1+0=1

    3)

    //有括号,先解析括号
    $a =10;
    $a=$a+(++$a)+($a++)+($a);echo “<br>”;
    //$a=$a+(++$a)+($a++)+(++$a);
    //10  11  11  13
    var_dump($a); //结果输出45

    4)最霸道的题来了

    static $a=1;
    $a++;
    var_dump($a); //echo 3

    static $a=2;
    $a++;
    var_dump($a);//echo 4

    //php底层源码分析

    5)count();           统计数组的位数

    echo count(‘567wefdfsdfasdaSaF’);   //echo  1
    echo count(null);                                  //echo  0
    echo count(false);                                 //echo  1

    6) 

     $a = 0123;

     echo $a;

    结果返回的是:83;
    原因是 int类型的变量,如果是以0开始,就会把这个变量当成八进制来解析;
    八进制的0123转换为十进制 恰恰为 83;

    7)

    function myfunc($a){
        echo $a + 10;
    }
    
    $val = 10;
    echo "myfunc($val)=".myfunc($val); //20myfunc(10)

    //分析:

    这道面试题主要是考察执行顺序,具体解答过程如下:
    a.echo "myfunc($val)=";
    单独这样的时候,输出结果为:myfunc(10)= ,说明双引号中只不解析函数,只解析变量
    b.echo "myfunc($val)=".myfunc($val);
    拼接上后面的函数后,结果为:20myfunc(10)= ,说明后面的函数先执行输出了20。然后执行了echo语句。

    总结:第一步执行后面的函数输出了20,然后在执行echo语句。故结果为:20myfunc(10)=



  • 相关阅读:
    1-接口测试基础知识
    import os
    好用封装好的函数
    python下载代码
    cookie关系图,url编码(urllib.parse模块)
    import flask(make_response),urllib,requests,base64
    mock接口开发,excel(读,写,修改)
    import json,random,time,datetime,hashlib,redis,pymysql
    集合和函数
    python 文件读写
  • 原文地址:https://www.cnblogs.com/xiaotaoing/p/6687415.html
Copyright © 2011-2022 走看看