PHP基础面试基础-3

21. 什么是静态变量?

 如果一个函数内定义的变量前使用关键字static来声明,那么该变量就是静态变量。

 一般函数内的变量在函数调用结束后,其存储的数据将被清除,所占的内存空间也被释放。而使用静态变量时,该变量会在函数第一次被调用时被初始化,初始化后该变量也不会被清除,当再次调用该函数时,这个静态变量不再被初始化,而能保存上次函数执行完后的值。可以说静态变量在所有对该函数的调用之间共享。

22. php中函数传递参数的方式有哪些?两者有什么区别?

 按值传递和按地址传递(或按引用传递)

 (1)按值传递:  待传递的变量,与传递给函数之后的变量是存储在不同的空间中。所以函数体内对该变量值做的修改,不影响原本的变量值。

(2)按地址传递: 使用 & 符号,表明该参数是以地址的方式传递值。并不会将主程序中的指定数值或目标变量传递给函数,而是把该数值或变量的内存储存区块地址导入函数之中,所以函数体内的该变量和主程序中的该变量在内存中是同一个。函数体做的修改,直接影响到函数体外部的该变量的值。

23. 什么是递归函数?如何进行递归调用?

 递归函数其实就是调用自身的函数,但是必须满足以下两个条件:

 1)在每一次调用自身时,必须是更接近于最终结果;

 2)必须有一个确定的递归终止条件,不会造成死循环。

 举例说明:

 在实际工作中往往会在遍历文件夹的时候使用。

 如果有个例子是希望获取到目录windows下所有的文件,那么先遍历windows目录,如果发现其中还有文件夹,那么就会调用自身,继续往下寻找,依次类推,

 直到遍历到再也没有文件夹为止,这也就是意味着遍历出来了所有的文件。

24. 判断一个函数是否存在?

    function_exists( string $function_name )  如果存在,返回true, 不存在则返回 false。

25. func()和@func()之间有什么区别?

 第二个函数调用失败不会报错,第一个会报错

26. include()和require()函数的用法和区别是什么?include_once()和require_once()呢?(可扩展)(重点)

 include和require出现错误后的错误级别不一样;

 require一个文件存在错误时,执行就会中断。并返回一个致命错误。

include:一个文件存在错误,程序不会中断执行。会弹出一个警告。

include_once()和require_once()在加载之前要判断是否已经导入

27. 说出前置++和后置++的区别?

 前置++是先将变量增加1,然后在将值赋值给原来的变量;

 后置++是先返回变量的当前值,然后再将变量的当前值增加1.

28. 字符串运算符“.”与算术运算符“+”有什么区别?

 当“a”“b”之间使用.时认为是连字符。如果两者间是+的时候php会认为是一次运算。

 1)如果+号两边的字符串是数字组成的,那么会将字符串自动转为整型;

 2)如果+号两边是纯粹的字母,那么会输出0;

 3)如果+号两边的字符串是以数字开头的,那么会截取字符串开头的数字,然后进行运算。

29. 什么是三目(或三元)运算符?

 根据一个表达式的结果在另两个表达式中选择一个。

 例如: ($a==true) ? 'good':'bad';

30. 控制流程语句有哪些?

 1:三种程序结构    顺序结构、分支结构、循环结构

 2:分支: if/esle/esleif/     switch/case/default

 3: switch 需要注意的:

  case子句中的常量可以是整型、字符串型常量、 或者常量表达式,不允许是变量。

    同一个switch子句中,case的值不能相同,否则只能取到首次出现case中的值。

 4: 循环  for while   do...while

   do...while 后面必须加入分号结尾。

   while 和 do...while 的区别

 5:break 和 continue 的区别。(重点)

  break可以终止循环。

(此文是网上整理的,如有侵权,请联系本人,必删)

猜你喜欢

转载自blog.csdn.net/j_xx4409/article/details/82290966