2024年php面试题.docx
《2024年php面试题.docx》由会员分享,可在线阅读,更多相关《2024年php面试题.docx(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2024年php面试题 2024php面试题7篇 这是一份比较全面的PHP面试题,对打算去新公司应聘PHP职位的开发者应当有帮助。 或者说,对聘请PHP开发人员的企业也有些帮助!下面是我为大家整理的2024php面试题,假如大家喜爱可以共享给身边的挚友。 2024php面试题(篇1) 1.以下哪一句不会把 John 新增到 users 阵列? $users = 'john' 胜利把 John 新增到阵列 users。 array_add($users,john); 函式 array_add() 无定义。 array_push($users,john); 胜利把 John 新增到
2、阵列 users。 $users |= 'john' 语法错误。 2.sort()、assort()、和 ksort() 有什么分别?它们分别在什么状况下运用? sort() 依据阵列中元素的值,以英文字母依次排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。 assort() PHP 没有 assort() 函式,所以可能是 asort() 的笔误。 asort() 与 sort() 一样把阵列的元素按英文字母依次来排列,不同的是全部索引键都获得保留,特殊适合替联想阵列排序。 ksort() 依据阵列中索引键的值,以英文字母依次排序,
3、特殊适合用于希望把索引键排序的联想阵列。 3.以下的代码会产生什么?为什么? $num =10; function multiply() $num =$num _10; multiply(); echo $num; 由于函式 multiply() 没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS'num'),所以 $num 的值是 10。 4. reference 跟一个正规的变量有什么分别?如何 pass by reference?在什么状况下我们须要这样做? Reference 传送的是变量的地址而非它的值,所以在函式中变更一个变量的值
4、时,整个应用都见到这个变量的新值。 一个正规变量传送给函式的是它的值,当函式变更这个变量的值时,只有这个函式才见到新值,应用的其他部分仍旧见到旧值。 $myVariable = ”its' value“;Myfunction($myVariable); / 以 reference 传送参数以 reference 传送参数给函式,可以使函式变更了的变量,即使在函式结束后仍旧保留新值。 5.些函式可以用来在现正执行的脚本中插入函式库? 对这道题目不同的理解会有不同的答案,我的第一个想法是插入 PHP 函式库不外乎 include()、include_once()、require()、req
5、uire_once(),但细心再想,“函式库”也应当包括 com 物件和 .net 函式库,所以我们的答案也要分别包括 com_load 和 dotnet_load,下次有人提起“函式库”的时候,别遗忘这两个函式。 6.foo() 与 foo() 有什么分别? foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。 foo() 在执行这个函式时,会隐藏全部上述的错误讯息。 许多应用程式都运用 mysql_connect() 和 mysql_query 来隐藏 mysql 的错误讯息,我认为这是很严峻的失误,因为错误不该被隐藏,你必需妥当处理它们,可能的话解决它们。
6、7.你如何替 PHP 的应用程式侦错? 我并不常这样做,我曾经试过许多不同的侦错工具,在 Linux 系统中设定这些工具一点也不简单。不过以下我会介绍一个近来颇受注目的侦错工具。 PHP - Advanced PHP Debugger 或称 PHP - APD,第一步是执行以下的指令安装: pear install apd安装后在你的脚本的开头位置加入以下的语句起先进行侦错: apd_set_pprof_trace();执行完毕,打开以下档案来查阅执行日志: apd.dumpdir 你也可以运用 pprofp 来格式化日志。 具体的资料可以参阅 8.“=”是什么?试举一个“=”是真但“=”是假
7、的例子。 “=”是给既可以送回布尔值“假”,也可以送回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和 strrpos() 便是其中两个例子。 问题的其次部份有点困难,想一个“=”是假,但是“=”是真的例子却很简单,相反的例子却很少。但我最终找到以下的例子: if (strpos(”abc“, ”a“) = true) / 这部分永不会被执行,因为 ”a“ 的位置是 0,换算成布尔值“假”if (strpos(”abc“, ”a“) = true) / 这部份会被执行,因为“=”保证函式 strpos() 的送回值不会换算成布尔值. 9.你会如何定义一个没有成员函式或特性的类别
8、myclass? class myclass 10.你如何产生一个 myclass 的物件? $obj = new myclass(); 11.在一个类别内如何存取这个类别的特性及变改它的值? 运用语句:$this->propertyName,例如: class myclass private $propertyName; public function _construct() $this->propertyName = ”value“; 12.include 和 include_once 有什么分别?require 又如何? 三者都是用来在脚本中插入其他档案,视乎 url_al
9、low_fopen 是否核准,这个档案可以从系统内部或外部取得。但他们之间也有微细的分别: include():这个函式容许你在脚本中把同一个档案插入多次,若果档案不存在,它会发出系统警告并接着执行脚本。 include_once():它跟 include() 的功能相像,正如它的名字所示,在脚本的执行期间,有关档案只会 入一次。 require():跟 include() 差不多,它也是用来在脚本中插入其他档案,但若果档案不存在,它会发出系统警告,这个警告会引致致命错误令脚本中止执行 13.以下哪一个函式可以把阅读器转向到另一个页面? redir() 这不是一个 PHP 函式,会引致执行错误
10、。 header() 这个是正确答案,header() 用来插入卷头资料,可以用来使阅读器转向到另一个页面,例如: header(”Location: www.search- location() 这不是一个 PHP 函式,会引致执行错误。 redirect() 这不是一个 PHP 函式,会引致执行错误。 14.以下哪一个函式可以用来开启档案以便读写? fget() 这不是一个 PHP 函式,会引致执行错误, file_open() 这不是一个 PHP 函式,会引致执行错误。 fopen() 这是正确答案,fopen() 可以用来开启档案以便读写,事实上这个函式还有许多选项,具体资料请参阅 。
11、 open_file() 这不是一个 PHP 函式,会引致执行错误。 15.mysql_fetch_row() 和 mysql_fetch_array() 有什么分别? mysql_fetch_row() 把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵列的索引 0,其次栏在索引 1,如此类推。mysql_fetch_assoc() 把数据库的一列储存在一个关联阵列中,阵列的索引就是栏位名称,例如我的数据库查询送回“first_name”、“last_name”、“email”三个栏位,阵列的索引便是“first_name”、“last_name”和“email”。mysql_fetch
12、_array() 可以同时送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。 16.下面的代码用来做什么?请说明。 $date='08/26/'print ereg_replace(”(0-9+)/(0-9+)/(0-9+)“,”2/1/3“,$date); 这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好挚友告知我可以把这个正规表达式拆解为以下的语句,对于如此简洁的表示是来说其实无须拆解,纯粹为了解说的便利: / 对应一个或更多 0-9,后面紧随一个斜号$regExpression = ”(0
13、-9+)/“;/ 应一个或更多 0-9,后面紧随另一个斜号$regExpression .= ”(0-9+)/“;/ 再次对应一个或更多 0-9$regExpression .= ”(0-9+)“;至于 2/1/3 则是用来对应括号,第一个括号对的是月份,其次个括号对应的是日期,第三个括号对应的是年份。 17.给你一行文字 $string,你会如何编写一个正规表达式,把 $string 内的 HTML 标签除去? 首先,PHP 有内建函式 strip_tags() 除去 HTML 标签,为何要自行编写正规表达式?好了,便当作是面试的一道考题吧,我会这样回答: $stringOfText = ”
14、 This is a test “;$expression = ”/<(._?)>(._?)/“;echo preg_replace($expression, ”2“, $stringOfText);/ 有人说也可以运用 /(<>_>)/ $expression = ”/(<>_>)/“;echo preg_replace($expression, ”“, $stringOfText); 18.PHP 和 Perl 辨别阵列和散列表的方法有什么差异? 这正是为何我老是告知别人选择适当的编程语言,若果你只用一种语言的话你怎么能回答这道问题?这道问题
15、很简洁,Perl 全部阵列变量都是以 开头,例如 myArray,PHP 则沿用 $ 作为全部变量的开头,例如 $myArray。 至于 Perl 表示散列表则用 %,例如 %myHash,PHP 则没有分别,仍是运用 $,例如 $myHash。 19.你如何利用 PHP 解决 HTTP 的无状态本质? 最主要的俩各选择是 session 和 cookie。运用 session 的方法是在每一页的起先加上 session_start(),然后利用 $_SESSION 散列表来储存 session 变量。至于 cookie 你只需记着一个原则:在输出任何文字之前调用 set_cookie() 函
16、式,此外只需运用 $_COOKIE 散列表便可以存取全部 cookie 变量。 还有一个不那么牢靠的方法,就是利用访客的 IP 地址,这个方法有特定的危急性。 20.GD 函式库用来做什么? 这个可能是我最喜爱的函式库,自从 PHP 4.3.0 版本后 GD 便内建在 PHP 系统中。这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必需由系统管理员安装在伺服器上。 21.试写出几个输出一段 HTML 代码的方法。 嗯,你可以运用 PHP 中任何一种输出语句,包括 echo、print
17、、printf,大部分人都运用如下例的 echo: echo ”My string $variable“;你也可以运用这种方法: echo <<<endthis text= is= written= to= the= screen= as= output= and= this= $variable= parsed= too.= if= you= wanted= can= have= html= tags= in= here= well.= end;= remarks= must= be= a= line= of= its= own,= can't= contain=
18、any= extra= white= space.end; 22.PHP 比 Perl 好吗?请探讨。 我们不要为一个简洁的问题引发一场舌战,正如我常常说的:“为工作选择适合的语言,不要把工作迁就语言。”我个人认为 Perl 非常适合用作吩咐行工具,虽然它在网页应用上也有不错的表现,但是它的真正实力在吩咐行上才能充分发挥。同样地,PHP 虽然可以在限制台的环境中运用,但是个人认为它在网页应用上有更好的表现,PHP 有大量特地为网页应用而设计的函式,Perl 则好像以吩咐行为设计之本。 个人来说两种语言我都喜爱,在高校期间我常常运用 Perl、PHP 和 Java,惋惜工作上我运用 C#,但在家
19、里我花不少时间操练 PHP、Perl、Ruby(现正学习)和 Java,保持我的技能学问在最新状态。许多人问我 C 和 C+ 怎么样,它们是否仍有机会在我的应用中占一席位,我的答案基本上是“否”,我近来的工作主要集中在网页开发,虽然 C 和 C+ 也可以用来写网页,但它们究竟不是为这种工作而设计的,“为工作选择适合的语言”,若果我须要编写一个限制台应用,用来展示 bubble sort、quick sort 和 merge sort 的效能比较,我肯定会运用 C / C+。若果我须要编写一个相片簿系统,我会运用 PHP 或者 C#(我认为制作用户介面方面 .NET 语言比网页更加)。 更多相关
20、的面试问题文章举荐,大家敬请接着阅读:微软常见面试问题 国企面试常见问题及答案 外资银行面试问题集锦 2024php面试题(篇2) PHP面试题附答案 1. Which of the following will not add john to the users array? 1. $users = john; 2. array_add($users,john); 3. array_push($users,john); 4. $users |= john; Answer: 2,4 2. Whats the difference between sort, asort() and ksort(
21、),rsort()? Under what circumstances would you use each of these? sort(): 本函数对数组的值进行排序,当本函数结束时数组单元将被从最低到最高重新支配,array 中的单元给予新的键名。这将删除原有的键名而不仅是重新排序。 asort(): 这个函数将数组的值重新排序,由小至大排列。数组的索引亦跟着值的 依次而变动。当您在程序中须要重新整理数组值的 依次时,就可以运用这个函数。 ksort(): 对数组根据键名排序,保留键名到数据的关联。本函数主要用于关联数组。 rsort(): 本函数对数组进行逆向排序(最高到最低)。与so
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2024 php 试题
限制150内