php面试专题---5、流程控制考点

一、总结

一句话总结:

看代码不要先看函数里面的内容,要用的时候再去看;注意静态,注意变量作用域,php中的内置函数需要去归类总结,就是太容易忘记了

1、写出如下程序的输出结果,解释为什么?

|||-begin

<?php
$count = 5;
function get_count()
{
static $count;
return $count++;
} echo $count;-->5
++$count;-->6 echo get_count();-->null
echo get_count();-->1

|||-end

结果:5 1
null不会被输出
null++之后是1
函数内部需要手段才能使用外部变量

2、变量的作用域和静态变量?

php中函数内使用全局变量需有手段:变量的作用域也称变量的范围,变量的范围即它定义的上下文背景(也是它的生效范围)。大部分的PHP变量只有一个单独的范围。这个单独的范围跨度同样包含了include和require引入的文件。
global关键字:在函数内部写global $outer;即可在函数内部使用

3、php static关键字注意点?

1.仅初始化一次;2.初始化时需要赋值
3.值保留:每次执行函数该值会保留
4.局部:static修饰的变量是局部的,仅在函数内部有效
5.可以用于递归调用次数:可以记录函数的调用次数,从而可以在某些条件下终止递归

4、解释下列程序的 结果?

|||-begin

function mgFunc(){
Static $a=1;
echo $a++;
}
myFunc();→1
myFunc();→2
myFunc();→3

|||-end

初始化只有一次,每次执行函数该值会保留
可用来做递归次数判断

5、函数的参数及参数的引用传递 是怎样?

默认传值:默认情况下,函数参数通过值传递
& $a:如果希望允许函数修改它的值,必须通过引用传递参数:比如

6、php函数的返回值的 注意点?

return返回:值通过使用可选的返回语句(return)返回
任意类型:可以返回包括数组和对象的任意类型
终止运行:返回语句会中止函数执行,将控制权交回函数调用处
数组返回多个值:返回多个值可以把值放在一个数组:省略return,返回值为NULL,不可有多个返回值

7、函数的引用返回实例?

|||-begin

function &mgFunc(){ //注意这里的&符号
static $b=10;
return $b;
} $a=myFunc();-->10
$a=&myFunc(); //注意这里的&符号
$a=100;
echo myFunc();-->100

|||-end

注意这里把函数赋值给了一个变量
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符&

8、外部文件的导入 注意事项?

包含并运行:include/require语句包含并运行指定文件;
找路径:如果给出路径名按照路径来找,否则从include_path中查找;如果include_path中也没有,则从调用脚本文件所在的目录和当前工作目录下寻找
继承变量范围:当一个文件被包含时,其中所包含的代码继承了include所在行的变量范围

9、php文件引入中include和require的区别?

警告和致命错误:加载过程中未找到文件则include结构会发出一条警告;这一点和require不同,后者会发出一个致命错误
E_COMPILE_ERROR:require 在出错时产生E_COMPILE_ERROR级别的错误。换句话说将导致脚本中止
E_WARNING:而 include只产生警告(E_WARNING),脚本会继续运行。
检查是否被包含过:require(include)/require_one(include_once)唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含。

10、php系统内置函数注意点?

IP处理函数:ip2long()、long2ip()
序列化及反序列化函数:serialize()、unserialize()
时间函数
date()、strtotime()、mktime()、time()、microtime()、date_default_timezone_set() IP处理函数
ip2long()、long2ip() 打印处理
print()、printf()、print_r()、echo、sprintf()、var_dump()、var_export() 序列化及反序列化函数
serialize()、unserialize() 字符串处理函数
implode()、explode()、join()、strrev()、trim()、
ltrim()、rtrim()、strstr()、number_format()... 数组处理函数

二、内容在总结中

 

php面试专题---5、流程控制考点的更多相关文章

  1. php面试专题---4、流程控制考点

    php面试专题---4.流程控制考点 一.总结 一句话总结: 理解循环内部机制(指针操作),更易于记忆foreach的reset特性,分支结构中理解了switch...case的执行步骤(跳转表)也就 ...

  2. php面试专题---6、正则表达式考点

    php面试专题---6.正则表达式考点 一.总结 一句话总结: 正则匹配步骤:1.先写出一个要匹配的字符串:2.自左向右的顺序使用正则表达式的原子和元字符进行拼接:3.最终加入模式修正符: 1.写出一 ...

  3. 【mysql的编程专题①】流程控制与其他语法

    流程控制与内置函数,一般用在select的field字段上,或者用在函数,存储过程,触发器中; 如果用在select上就会随着query出来的row来隐式迭代; 注释与语句结束符 语句结束符 默认有两 ...

  4. php面试专题---9、会话控制考点

    php面试专题---9.会话控制考点 一.总结 一句话总结: 面向对象.设计模式这些特别好用,需要融会贯通 1.请写出PHP类权限控制修饰符? public.protected.private 2.p ...

  5. php面试专题---8、会话控制考点

    php面试专题---8.会话控制考点 一.总结 一句话总结: 主要是cookie和session的区别,以及用户禁用cookie之后怎么使用session 1.为什么要使用会话控制技术? 因为http ...

  6. php面试笔记(4)-php基础知识-流程控制

    本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而流程控制相关的 ...

  7. php面试专题---20、MySQL的安全性考点

    php面试专题---20.MySQL的安全性考点 一.总结 一句话总结: 还是得多看视频,教程看的浮光掠影,容易get不到重点:比如预处理防sql注入之前是挺熟,后面就忘记了,而且看文章get不到点 ...

  8. php面试专题---19、MySQL高可扩展和高可用考点

    php面试专题---19.MySQL高可扩展和高可用考点 一.总结 一句话总结: 要区别分区和分库分表,分区的话对用户是透明的,分库分表的话需要程序员做点事情,主从数据库同步的话借助的是二进制日志 1 ...

  9. php面试专题---18、MySQL查询优化考点

    php面试专题---18.MySQL查询优化考点 一.总结 一句话总结: 慢查询:查找分析查询速度慢的原因 数据访问:优化查询过程中的数据访问 长难句:优化长难的查询语句 特定类型:优化特定类型的查询 ...

随机推荐

  1. SPOJ NICEBTRE - Nice Binary Trees(树 先序遍历)

    传送门 Description Binary trees can sometimes be very difficult to work with. Fortunately, there is a c ...

  2. Hibernate入门2

    实体类的编写规则 要求实体类的属性是私有的 要求实体类中的私有属性有公开的get和set方法(设置器和访问器) 要求实体类有一个属性作为唯一值(一般使用id值) 实体类属性建议不使用基本数据类型,使用 ...

  3. MySQL集群(PXC)入门

    一.学习动机 伴随互联网行业的兴起,越来越多的领域需要相应的技术方案,比如:打出软件.电商平台.直播平台.电子支付.媒体社交. 身边常见的,校园出成绩那一年,我们会感觉网站异常的卡顿,因为访问人数太多 ...

  4. debain8 安装mysql8

    一.下载apt源 https://dev.mysql.com/downloads/repo/apt/ 二.更新apt sudo apt-get update 三.安装mysql sudo apt-ge ...

  5. Go语言_并发

    并发 Go 将并发结构作为核心语言的一部分提供.本节课程通过一些示例介绍并展示了它们的用法. Go 作者组编写,Go-zh 小组翻译. https://tour.go-zh.org/concurren ...

  6. tensorflow的reshape操作tf.reshape()

    在处理图像数据的时候总会遇到输入图像的维数不符合的情况,此时tensorflow中reshape()就很好的解决了这个问题. 更为详细的可以参考官方文档说明: numpy.reshape reshap ...

  7. vim gdb使用

    vim 8.0以上 :packadd termdebug :termdebug shell gdb中运行help all查看所有命令帮助 显示汇编窗口 layout asm

  8. MySQL数据库使用xtrabackup备份实现小例子

    关于MySQL数据库的备份的工具和方式也比较多,本文只简单介绍一些我司一个平台的备份方案.Xtrabackup是由percona开源的免费数据库热备份软件,但是只能对InnoDB数据库和XtraDB存 ...

  9. Sass函数:Sass Maps的函数-map-has-key($map,$key)

    map-has-key($map,$key) 函数将返回一个布尔值.当 $map 中有这个 $key,则函数返回 true,否则返回 false. 前面的示例,当 $key 不在 $map 中时,使用 ...

  10. gitlab私钥配置

    一.Linux版 1).首先打开linux服务器,输入命令:ls -al ~/.ssh,检查是否显示有id_rsa.pub或者id_dsa.pub存在,如果存在请直接跳至第3步. 2).在bash中输 ...