1.什么是引用变量,用什么符号定义引用变量?

概念:用不同的名称引用同一个变量的内容;用&符号定义。

例如:

 $a = range(0,100);
$b = &$a;
$b = range(0,200);

当$b修改时,修改的是$b指向的内存空间,$a也跟着变化。

扩展:

正常情况下,如:

 $a = range(0,100);
$b = $a;
$a = range(0,100);

没有引用地址空间时,当$b = $a ;$b指向$a的地址空间,当$a重新赋值时,才会再开辟另一个地址空间。

注意:1.使用unset,只会取消引用,而不会销毁地址空间。

2.在面向对象中,对象复制,默认是引用对象,想要再开辟另一个空间,需要用__clone方法。

面试真题

最终结果得出,bcc;

2.php字符串可以有几种定义方式,各自的区别是什么

(1)双引号

双引号解析所有转义字符和变量

(2)单引号

单引号不解析变量,只解析\\和\';

(3)heredoc

相当于双引号

语法格式:

$str = <<<"ET"
hello world
ET;

(4)nowdoc

相当于单引号

$str = <<<'ET'
hello world
ET;

注意:heredoc和nowdoc一般用于大文本;

扩展

数据类型分三类:标量,复合,特殊;

标量:整型,浮点型,字符串,布尔型;

复合:数组,对象;

特殊:资源,NULL;

注意:1.浮点型不能用于比较等于,等运算符。因为在CPU计算的时候需要转换成二进制时有一定的消耗;

2.布尔类型,以下都为false,0,0.0,‘’,false,array(),NULL;

3.超全局数组有   $GLOBALS $GET $POST $REQUEST $SESSION $COOKIE $SERVER $FILES $ENV

($GLOBALS包含了所有全局变量数组;$REQUEST包含了$POST,$GET,$COOKIE,尽量少用$REQUEST;

$SERVER['SERVER_ADDR'] 服务器端的IP地址

$SERVER['SERVER_NAME'] 服务器名称

$SERVER['REQUEST_TIME'] 请求时间

$SERVER['QUERY_STRING'] ?后面的字符串,参数

$SERVER['HTTP_REFERER'] 上级请求页面,从那里跳过来的 ,可能为空,当直接输入网址

$SERVER['HTTP_USER_AGENT'] 请求头里面的AGENT信息

$SERVER['REMOTE_ADDR']  客户端IP地址

$SERVER['PATH_INFO'] url地址中路径的部分

)

4.NULL的三种情况,直接赋值NULL,未定义的变量,unset销毁的变量

常量

const和define

const是语言结构,define是函数,const比较快,可以定义类的常量,define不可以定义类常量,常量一经定义,不能修改删除;

预定义常量

__FILE__  返回文件的路径名和名称

__LINE__  所在行号

__DIR__  所在目录

__FUNCTION__  所在的函数名称

__CLASS__  类的名称

__TRAIT__

__METHOD__  类名加方法名

__NAMESPACE__  命名空间

3.foo()和@foo()的区别

@错误控制符

考点运算符

注意:1.boolean递增递减都没用;NULL递增等于一,递减无用;

真题

答案:1  1

优先级高到底  >   ||    =

4.php遍历数组的三种方式,各自的区别

真题

php如何去优化if elseif语句的情况?

1.把可能性大的排前面

2.如果是简单的整型浮点型或者字符串,可以使用switch case

真题

引用传递当第一次执行myFunc()时,static $b = 10;

当修改$a时,则修改了函数的返回值,则引用的地址空间;

5.时间函数

6.打印函数

7.字符串

8.数组

正则表达式

大学字母取反

\d数字0-9 、\D除0-9

\w数字字母下划线

\s空白符

真题

文件目录操作

 function read_file($file){
$handle = fopen($file, 'r');
$content = fread($handle);
fclose($handle);
$handle = fopen($file, 'w');
$content = 'helle world'.$content;
fwrite($handle, $content);
fclose($handle);
}

 function readDir($dir){
$handle = opendir($dir);
while (!false == $file = readdir($handle)) {
if ($file != '.' && $file != '..') {
echo $file;
if (filetype($dir.'/'.$file) == 'dir') {
readDir($dir.'/'.$file);
}
}
}
}

为什么要是用会话技术?

web是通过http协议实现的,因为http是无状态协议,没有一个内建机制维护两个事物之间的状态,当一个用户请求一个网页时,服务器不会认识这两次请求来自同一个用户,会认为是两次请求的独立,是两个不同的人来请求的,无法保持用户的登录状态,没有办法在不同页面进行用户跟踪,状态保持。

当cookie被禁用,可重写url

session存储,不同服务器上,不能访问其他服务器session,如何保持状态

存储函数

真题

session信息的存储方式,如何进行遍历

session存储到服务器,或者通过seesion_set_save_handler()存储到数据库

$_SESSION[]进行遍历

考点:还有各种魔术方法,设计模式。

当方法名和类名一样时,也是构造方法

考点:网络

请求方法

真题:

HTTP、TCP协议分别在OSI网络模型的第几层

7应用层,4传输层

真题:

请简述CGI,FASTCGI和PHP-FPM的区别

真题:

ajax利用了什么协议,请简述ajax的工作机制?

ajax的基本概念,Asynchronous javascript and XML,异步的javascript和XML文件,通过在后台与数据库进行少量数据交换,ajax可以使网页实现异步更新。

ajax的基本工作原理,XMLHttpRequerst是ajax的基础,XMLHttpRequerst是用于在后台与服务器交换数据

考点:linux

mysql考点:

高并发大流量

php面试重要知识点,面试题的更多相关文章

  1. 2019前端面试系列——Vue面试题

    Vue 双向绑定原理        mvvm 双向绑定,采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的 setter.getter,在数 ...

  2. 2019滴滴java面试总结 (包含面试题解析)

    2019滴滴java面试总结  (包含面试题) 本人6年开发经验.今年年初找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是既有php也有Java后端开发,最终选择去了滴滴 ...

  3. 2019滴滴php面试总结 (包含面试题解析)

    2019滴滴java面试总结  (包含面试题) 本人6年开发经验.今年年初找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是既有php也有Java后端开发,最终选择去了滴滴 ...

  4. 2019头条java面试总结 (包含面试题解析)

    2019滴滴java面试总结  (包含面试题) 本人8年开发经验.今年年初找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是Java后端开发. 面试了很多家公司,感觉大部分 ...

  5. Java 基础常见知识点&面试题总结(下),2022 最新版!

    你好,我是 Guide.秋招即将到来,我对 JavaGuide 的内容进行了重构完善,同步一下最新更新,希望能够帮助你. 前两篇: Java 基础常见知识点&面试题总结(上),2022 最新版 ...

  6. Java 集合常见知识点&面试题总结(上),2022 最新版!

    你好,我是 Guide.秋招即将到来(提前批已经开始),我对 JavaGuide 的内容进行了重构完善,公众号同步一下最新更新,希望能够帮助你. 你也可以在网站(javaguide.cn)上在线阅读, ...

  7. PHP程序员面试技巧之口试题分享

    网络上流传很广的一部分php工程师面试题目,有些phper们认为这些很形式,天下面试题目一大把,不能考核一个人的真实水平,其实细细研究起来,无论怎样,能存在就表明其有存在的价值.下面小编整理了12条P ...

  8. IOS学习笔记48--一些常见的IOS知识点+面试题

      IOS学习笔记48--一些常见的IOS知识点+面试题   1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...

  9. 关于面试总结-python笔试题

    关于面试总结4-python笔试题 前言 现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出2个笔试题,这些题目一般不难,主要考察基本功. 要是给你一 ...

  10. 2019前端面试系列——JS面试题

    判断 js 类型的方式 1. typeof 可以判断出'string','number','boolean','undefined','symbol' 但判断 typeof(null) 时值为 'ob ...

随机推荐

  1. easypoi导出单个sheet和多个sheet

    今天有时间研究了一下easypoi,感觉使用了easypoi导出excel方便了很多,不用写很多复杂的反射,只需要使用注解和一些工具类就可以实现常用的excel的导出,接下来介绍一下easypoi如何 ...

  2. java实现mysql的备份还原

    此文章是基于 1. 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 2. jquery+springMVC实现文件上传 一. 简介 备份和导入是一个互逆的过程. ...

  3. 《JavaWeb从入门到改行》那些年一起学习的Servlet

    目录 获取ServletContext : ServletContext接口中的一些方法 application域存取数据功能 代码演示: application域获取项目文件路径 代码演示: API ...

  4. 洛谷P1072 Hankson 的趣味题(数学)

    题意 题目链接 Sol 充满套路的数学题.. 如果你学过莫比乌斯反演的话不难得到两个等式 \[gcd(\frac{x}{a_1}, \frac{a_0}{a_1}) = 1\] \[gcd(\frac ...

  5. CentOS 7运维管理笔记(12)----PHP页面失去焦点后变成空白的解决方法

    昨天搭建好了LAMP服务器,可以正常看到PHP页面了.后来发现每当把鼠标从浏览器中移开而点击其他地方时,PHP页面就变成一片空白.即PHP页面失去焦点后就变空白,不知为何. 今天网上搜索解决方案,终于 ...

  6. PHP中empty、isset和is_null的使用区别

    关于PHP中empty().isset() 和 is_null() 这三个函数的区别,之前记得专门总结过,上次又被问到,网上已经很多,就用几个例子来说明: 测试用例选取: <?php $a;$b ...

  7. idea 安装findBugs 和 checkStyle

    1.fiindBugs是一款 静态分析工具,检查程序潜在bug,在bug报告中快速定位到问题的代码上.在idea下面安装很简单可以参考 http://zhongmin2012.iteye.com/bl ...

  8. 如何在 Linux 虚拟机上扩展根文件系统

    问题描述 通过 Azure 平台部署的 Linux 虚拟机默认的根文件系统容量有限,需要进行扩展. 问题分析 由于 Azure 平台部署的 Linux 虚拟机默认根文件系统容量比较小,客户在使用过程中 ...

  9. linux定时备份MySQL数据库并删除七天前的备份文件

    1.创建备份文件夹 #cd /bak#mkdir mysqldata 2.编写运行脚本 #nano -w /usr/sbin/bakmysql.sh 注:如使用nano编辑此代码需在每行尾添加’&am ...

  10. nginx的开机自启、server命令启动、nginx.conf配置

    1.将Nginx设置为开机自动启动 a.当上面6步完成之后,说明安装已经完全成功了,但是每次开机我们面临的一个问题,就是每次都要执行命令(1: cd /usr/local/nginx/sbin/   ...