10个值得深思的PHP面试问题

2018-12-13 15:32 by 布网科技

原文出处: Toptal   译文出处:JackPu   

Q1

第一个问题关于弱类型

PHP

1

2

3

4

5

6

7

$str1 = 'yabadabadoo';

$str2 = 'yaba';

if (strpos($str1,$str2)) {  

    echo "\"" . $str1 . "\" contains \"" . $str2 . "\"";

} else {

    echo "\"" . $str1 . "\" does not contain \"" . $str2 . "\"";

}

正确运行的输出结果:

PHP

1

"yabadabadoo" does not contain "yaba"

strpos是返回字符串str2str1的位置,没有找到则返回false然而实际上这次返回了0而在if语句中0也被当作false,所以我们需要对false做类型判断,正确的代码如下:

PHP

1

2

3

4

5

6

7

$str1 = 'yabadabadoo';

$str2 = 'yaba';

if (strpos($str1,$str2) !== false) {  

    echo "\"" . $str1 . "\" contains \"" . $str2 . "\"";

} else {

    echo "\"" . $str1 . "\" does not contain \"" . $str2 . "\"";

}

需要注意的是我们使用了!==,在php 和 JS中= !相对== 更为严格需要要求数据类型一致。

Q2

下面的输出结果会是怎样?

PHP

1

2

3

4

5

6

7

8

9

10

$x = 5;

echo $x;  

echo "<br />";  

echo $x+++$x++;  

echo

注:本文转载自布网科技,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
  • 波浪
  • 波浪
  • 波浪
  • 波浪
0.073594s