PHP面试要点——php

php

1. 传值与传引用的区别

  • 传值:就是把实参赋值给形参,传递后,两者没有任何关联。所以对形参的修改不会影响到实参

  • 传引用:是以地址的方式传递参数,传递后,实参和形参都是同一个对象,只是名字不同,因为他们都指向都一个地址,所以对形参的修改会影响到实参。

注意:php变量时存储于zval容器内的,传值时不会重新分配内存空间,只是refcount加一,只有形参的值改变才会分配新的内存;
传引用时则是is_ref变为1

典型例子:
$a = 1;
$b = $a;
$c = &$a;
$d = $c;
$e = &$c;
$e = 2;
echo $a,"\n",$b,"\n",$c,"\n",$d,"\n",$e,"\n";
//分析得出a,c,e实质上是同一个变量,值=2
b与a独立,值未改变=1
d与c独立,取c的初始值1
最终结果
2
1
2
1
2
特例:对象之间的赋值 浅复制&深复制
$user = new User();
//这种写法,实际上是引用写法,
//也就是说本质上user1和user2变量指//向的都是同一个PHP对象,
//占用的内存也只有一份
$user1 = $user;

//要复制对象,需要使用clone
$user2 clone $user;
//clone 会触发类的魔术方法__clone()

对象的克隆与引用的区别

2. echo,print,print_r和var_dump的区别

  • echo 是语言结构。可以一直输出多个值,多个值用逗号分隔。只能输出数字、字符串、布尔值。如果输出数组只会输出一个Array,且会报错

  • print 是语言结构。一次只能输出一个值。其他与echo一样;

  • print_r 是函数。可以把数字、字符串、数组简单的答应出来

  • var_dump 是函数。可以输出php所有的基础数据类型,并且能显示数据的类型、长度和值。

  • var_export 打印出数据的键和值

重点:函数比语言结构多了解析过程,因此语言结构比函数快

常见语言结构有:

echo();print();
isset();unset();
exit();die();
list();
include();require();

3. include与require的区别,require和require_once哪个效率更高?

  • require:
    1. 遇到错误,报fatal error错误,脚本停止执行。
    2. 无条件执行,引入后php会将文件重新编译,让引入文件成为原文件的一部分。一般放在程序头
    3. 没有返回值
//例子:
if(false) {
    require "a.php";//还是会执行
}
  • include:
    1. 遇到错误,报warning error,脚本继续执行。
    2. 有条件执行,一般放在流程控制语句内
    3. 有返回值

4. 常见魔术方法

__construct() 构造函数 创建对象时调用
__destruct() 析构函数  销毁对象时调用 
__toString() 对象被当做字符串时,自动调用
__invoke() 当尝试以调用函数的方式调用一个对象时,自动调用
__clone()  对象被clone时调用
__call()   调用对象不存在的方法是调用
__callStatis() 调用类不存在的静态方法是调用

例如:在laravel框架调用一个controller中不存在的action。可以在controller中实现一个__invoke()方法,这个方法会被触发

5. 如何理解命名空间

1.防止类名和函数方法冲突
2.防止编写的代码与php内部的类、函数、常量或与第三方的类、函数、常量之间名字冲突
3.为很长的标识符建一个别民,提高代码可读性

PHP5.3.0之后的版本开始支持命名空间

6. 递归多级目录

//点三个参数表示,递归创建
mkdir($path, 0777, true);

7.获取毫秒级时间戳

$time_float = microtime(true);//单位秒
echo bcmul($time_float,1000); //单位毫秒
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值