30
2013-01

php程序员面试题第二季

6、如何实现字符串翻转?
可用内置函数strrev。如果不准用PHP内置函数的就自己写:

Hello->olleH

7、

$a = "hello";
$b = &$a;
unset($b);
$b = "world";

what is $a?
此题的目的是要深刻理解引用。

通常,在将一个变量的值赋给另外一个变量的时候,先产生原变量的一个副本,然后再将它保存在内存的其他地方。如:

$a = 5;
$b = $a;

首先产生$a的一个副本,然后再将它保存到$b中。如果随后改变$a的值,$b的值不会改变:

$a = 7; //这时$b仍然是5

可以使用引用操作符&来避免这样的副本。如:

$a = 5;
$b = &$a;
$b = 7; //这时$a和$b都会是7。 这行也可以换成$b = 7;

引用是非常有趣的。请记住,引用就像一个别名,而不是一个指针。$a和$b都指向了内存的相同地址。可以通过重置它们来改变所指向的地址。如下所示:

unset($a);

重置并不会改变$b的值,但是只可以破坏$a和值7保存在内存中的连接。

可以搜索: 引用 site:php.net     进一步深入了解PHP的引用。
也可以直接访问这个页面:http://www.php.net/manual/zh/language.references.php

http://www.php.net/manual/zh/language.references.unset.php
当 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如:

<?php
$a = 1;
$b =& $a;
unset($a);
?>

不会 unset $b,只是 $a。
8、实现中文字串截取无乱码的方法。
a.可以用正则
b.用mb_substr()
9、

$a = 1;
$x = &$a;
$b = $a++;

what is $b? $x?
10、

$array = array();
$x = empty($array);

what is $x? true or false
什么样的内容为空?
empty()、isset()、is_null


除非注明,文章均为史亚永原创,欢迎转载!转载请注明本文地址,谢谢。

本文地址:http://www.shiyayong.cn/post/121.html

评论列表:

发表评论:

(设置个性头像)

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

无觅相关文章插件,快速提升流量