常见‘题’ 二

//1、检测一个字符串中所有字母是否全部包含在另一字符串中,$a = "ABCDSASSJHK"; $b = "JDDSANH"; a中是否包含b的全部字母
//全包含返回true,否则false。
function hah($a,$b)
{
    $i = 0;
    while (isset($b[$i]) && $b[$i] != '') {
        if (strpos($a, $b[$i]) === false) {
            return false;
        }
        $i++;
    }
    return true;
}
$a = "ABCDSASSJHK";
$b = "JDDSANH";
var_dump(hah($a,$b));

//2、如何终止正在执行的高耗时SQL?

      (2)查看最近所有sql进程  :   

            show full processlist;

      (2)kill 会话号:       

           kill 1373457;

3、char、varchar、text的区别?

①CHAR是一种固定长度的类型,适合用在身份证号码、手机号码等定。,VARCHAR则是一种可变长度的类型。适合用在长度可变的属性。 text不设置长度, 当不知道属性的最大长度时,适合用text。

②按照查询速度: char最快, varchar次之,text最慢。

也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率

③在新版本的mysql中char(n)和varchar(n)中的n表示的都是字符数

其中char中的n最大长度是255个字符,如果是utf8编码方式, 那么char类型占255 * 3个字节。(utf8下一个字符占用1至3个字节)

varchar最大空间是65535个字节, 存放字符数量跟字符集有关系;varchar实际范围是65532或65533, 因为内容头部会占用1或2个字节保存该字符串的长度;如果字段default null(即默认值为空),整条记录还需要1个字节保存默认值null。如果是utf8编码, 那么varchar最多存65532/3 = 21844个字符。

 

4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节

 

4、switch 里的坑:

坑一:

$a = "c";
switch($a){
    case "b":
        echo "1";
        break;
    case 0:
        echo "2";
    case "c":
        echo "3";
        break;
    dafault:
        echo "4";
}
//23

PHP作为动态脚本语言:
动态语言的变量类型是随存储的变量而变化的,即变量类型是根据具体环境而进行变化的。

case 0:,PHP脚本将常量0翻译为确切的整数,与字符串比较大小时,需要将字符串转换为整数。PHP脚本会将字符串abc,从十进制(默认)转换为数字,但是abc很明显不能代表十进制数,即转换失败,则PHP将结果置为0,如果将字符串表示为"0xabc",那么PHP脚本能够发现0x标识,将abc作为十六进制转换,所以能够得到abc标识的十六进制整数。

 

坑二:

$a = 0;
switch($a){
    case $a>=0:
        echo 0;
        break;
    case $a>=10:
        echo 1;
        break;
    dafault:
        echo 2;
        break;
}
//1

第一行case ($a >= 0) , 条件表达式的值为 true  , switch($key) 中传过来的是 0 , 0和true 不匹配。

第二行 0>=10为false, case条件false 与switch中$a为0 相等(switch非严格匹配,自动转换类型) false==0

case条件的值与switch中值作比较,若相等就进入。

所以最后的结果应该是: 1

 

5、linux下比较两文件的差异 :diff

 参考:https://blog.youkuaiyun.com/hailangnet/article/details/79333110

6、日志访问ip,top10:命令参考:https://blog.youkuaiyun.com/tojohnonly/article/details/82772323

7、面向对象,类?

class father{
    public function aa(){
        return  __CLASS__;
    }
    public function ye(){
        return  new self;
    }
    public function to(){
        return  new static;
    }
}
class ch extends father{

}

$o=new ch();
var_dump($o->aa()); //father
var_dump($o->ye()); //father
var_dump($o->to()); //ch

self 表示的是代码所在类
static 表示的是外部调用的类
__CLASS__获取当前的类名

 8、并发抓取网站内容:  curl多进程实现;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值