【PHP面试题详解】 1. **数组添加元素** - `$users[] = 'john';` 是正确的添加方式,将'john'追加到数组末尾。 - `array_add($users,'john')` 并非PHP内置函数,是错误的。 - `array_push($users,'john');` 也会正确地将'john'推入数组末尾。 - `$users ||= 'john';` 这是用在其他语言中的短路逻辑或运算符,不适用于PHP数组的添加。 2. **排序函数的区别** - `sort()`:对数组进行升序排序,不保留键值关联。 - `asort()`:对数组进行升序排序,但保留键值关联。 - `ksort()`:按键值对数组进行升序排序,保留键值关联。 - 具体使用取决于是否需要保持键值关联以及排序方向。 3. **变量作用域** - 代码中的`$num`在函数内部不会改变,因为变量作用域限制,函数内部的`$num`与外部的`$num`是两个不同的变量。因此,`echo $num;`会输出10。 4. **引用与普通变量** - 引用是一种别名,它不是副本,而是指向同一内存位置。`&`符号用于创建引用。 - 使用引用传递参数时,可以修改原变量的值,而普通变量传递的是值的副本。 5. **引入库代码的函数** - `require` 和 `include` 用于将其他PHP文件包含到当前脚本中。`require_once` 和 `include_once` 会在脚本执行过程中只引入一次,防止重复引入。 6. **函数调用的区别** - `foo()` 直接调用函数,若函数不存在,会抛出错误。 - `@foo()` 前面加上`@`符号,表示抑制错误,即使函数不存在,也不会显示错误信息。 7. **调试PHP应用** - 使用`error_reporting(E_ALL)`开启所有错误报告。 - 使用`ini_set('display_errors', 1)`显示错误信息。 - 使用`var_dump()`和`print_r()`输出变量信息。 - 使用Xdebug等调试工具进行更复杂的调试。 8. **相等比较运算符** - `===` 严格相等比较,不仅检查值是否相等,还检查类型是否相同。 - `==` 松散相等比较,值相等即为真。例如,`"0" == 0`返回true,但`"0" === 0`返回false。 9. **声明类** - `class MyClass {}` 声明一个名为"MyClass"的空类。 10. **创建对象实例** - `$myObject = new MyClass();` 创建MyClass类的一个实例并赋值给变量`$myObject`。 11. **访问和设置类的属性** - 在类内部,使用`$this->property`来访问或设置属性,如`$this->myProperty = 'value';` 12. **include与include_once、require与require_once** - `include` 和 `require` 会立即执行引入的文件,而 `once` 版本会在执行过程中避免重复引入。 13. **页面重定向** - 正确的方法是使用`header('Location: new_page.php');`进行页面重定向。 14. **文件读写** - 使用`fopen()`函数打开文件,如`$file = fopen('file.txt', 'r+');`,其中'r+'表示读写模式。 15. **MySQL数据获取** - `mysql_fetch_row()` 返回结果集中的下一行作为行数组,索引从0开始。 - `mysql_fetch_array()` 可以返回行数组,可以指定索引方式(数字索引、关联索引或两者)。 16. **正则表达式替换** - 代码使用了已废弃的`ereg_replace()`函数,它尝试将日期格式的字符串进行正则匹配并替换。这会导致错误,因为`ereg_replace()`已被移除。 17. **剥离HTML标签** - 使用`preg_replace()`和合适的正则表达式可以删除HTML标签,如`$string = preg_replace('/<[^>]*>/', '', $string);` 18. **数组处理差异** - PHP和Perl在数组处理上的区别主要是语法和一些内置函数的不同,比如PHP有`array_push()`,Perl使用`push()`,但基本概念和功能相似。 以上是对雅虎PHP面试题的详细解答,涵盖了PHP的基础知识,包括数组操作、变量作用域、排序、类与对象、文件处理、错误处理、字符串处理、正则表达式等多个方面。掌握这些知识将有助于理解PHP的核心概念,并在实际开发中游刃有余。
- 粉丝: 1
- 资源: 942
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于DP动态规划的混合动力汽车,P2构型 1.车辆数据来源advisor 2.电池SOC为电量维持型策略 3.全程序包含逆向迭代和正向寻优过程 4.DP可为后续mpc提供参考,也可将数据提取作为
- 基于 PyTorch/MXNet 的中文/英文 OCR Python 包 基于 RapidOCR 集成 PPOCRv4 最新版 OCR 模型,提供更多的模型选择
- 最新tvbox绿豆盒子UI8影视APP源码新增后台添加直播及加密功能 TV端影视APP反编译源码支持会员系统/代理系统/直播/自带免签收款/批量生成卡密
- 简易闭环温度控制系统程序
- html+css+js网页设计 企业官网 南昌地铁20个页面
- Orin Nano PCB库
- 基于Python的命令行测试自动化平台
- 深色主题农历跨年倒计时
- 狄拉克节线型半金属中的“双碗”表面态 一维光子晶体的能带,透射谱仿真
- 双馈风力发电系统,双pwm变器控制系统,采用直接转矩输入代替风力发电机 (1)转子侧采用基于定子磁链定向的矢量控制策略,对d轴进行定向,采用双闭环控制结构,外环为速度环,内环为电流控制环 (2)网
- 毕业设计-Python实现基于BERT模型的中文文本情感分类项目源码+操作过程(高分项目)
- 实训作业基于JSP+MySQL的学生宿舍管理系统源代码+数据库+文档
- 近乎完全消光的圆二色超反射镜 圆偏振光的设置
- 从0开始学习python
- 基于变步长扰动观察法光伏发电及其并网逆变仿真模型 模型用matlab搭建 保证效果
- Python实现基于BERT模型中文文本情感分类项目源码+操作过程(高分毕设)