PHP面试题精讲 — 基本数据类型、函数、弱类型

举报
小雨青年 发表于 2022/03/28 22:07:53 2022/03/28
【摘要】 日拱一卒无有尽,功不唐捐终入海 💋 目录 一、常见题型1. 双引号和单引号的区别?2. `for`和`foreach`的区别?3. `echo`,`print`,`print_r`...

日拱一卒无有尽,功不唐捐终入海 💋
在这里插入图片描述

一、常见题型

1. 双引号和单引号的区别?

单引号内的变量不会转义,双引号的会进行转义。

2. forforeach的区别?

foreach更适合不定长度数组的循环。
foreach循环更容易去操作数组的key。

3. echo,print,print_r的区别?

echo只能输出字符串,print可以输出简单的数据类型,print_r输出的数据类型更复杂。

4. 多维数组是指的什么?

指的是数组的值也是数组,层层嵌套。

5. 如何反转字符串?

  1. strrev()
  2. 分割字符串成数组,再进行遍历。

在这里插入图片描述

二、面试题型总结

上面的事例题型不是很多,因为这部分的考察内容占到PHP面试题的比例不是很高。

问的问题大概可以分为下面几种

  • 变量经过操作,最后的值是什么
  • 给出一个数组,如何得到目的数组
  • 几个函数的区别

三、知识点整理(收藏)

1. PHP支持的数据类型

PHP支持的数据类型有

基本类型

  • bool(布尔型)
  • int(整型)
  • float(浮点型)
  • string(字符串)

复合类型

  • array(数组)
  • object(对象)
  • callable(可调用)
  • iterable(可迭代)

特殊类型

  • resource(资源)
  • NULL(无类型)

对于初级的PHP面试题来说,考察更多的是前6种,就是我加粗的这几种。

gettype()函数可以得到变量的类型,一般在实际的项目中,更多的用法是判断是否是具体类型

  • is_numeric()
  • is_array()
  • is_string()
    等函数

2. 函数相关 – 数组排序

PHP原生支持的排序数组如下,但是一般在实际项目中,我们会用框架自带的数据排序方法,比如YIi2中的Array_helper()

array_multisort() 多个数组或多维数组排序

$a =array(100,80,50,10,0);
$b = array("c","f","q","e","z");
array_multisort($a,$b);
var_dump($a);
var_dump($b)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

asort() arsort() 根据数组的值进行排序

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

krsort() ksort() 根据数组的键进行排序

$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

3. 函数相关 – 基本类型操作

双引号

双引号内下变量是可以直接用的,所以下面的等效。


echo "$a $b";

echo  $a.$b;


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

弱类型的比较

PHP的弱类型比较,在实际工作中用到的很多,有时候会很方便,但是大多数的实际业务中,推荐===


var_dump("diandianxiyu_geek"==0);  //true
var_dump("diandianxiyu_geek"==1); //false
var_dump("diandianxiyu_geek_2021"==1); //false
var_dump("diandianxiyu_geek_2021"==0);//true
var_dump("0diandianxiyu_geek123456"=="0diandianxiyu_geek4456789"); //false 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

$a++++$a

这个类型属于面试专属,一般情况下的业务代码是用不上的,除非特别放飞自我。

$a++$a = $a + 1 是等价的,得到的变量是加过的。

++$a 是后加的,当前语句的变量不变。

四、 思路扩展(作业)

欢迎在评论中贴代码

  • 弱类型的特点,导致字符串如何做加减操作?
  • 怎么样确定我的数据类型真的是数组,并且马上做一层循环打印值?

五、总结

关于变量和函数,初级的PHP面试题会涉及到一些,中高级的一般不这么问。

对于毕业生来说,这部分还是需要花一点时间认识下的。

在这里插入图片描述

文章来源: coderfix.blog.csdn.net,作者:小雨青年,版权归原作者所有,如需转载,请联系作者。

原文链接:coderfix.blog.csdn.net/article/details/119088981

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。