原文出处:Toptal译文出处:JackPu
第一个问题关于弱类型
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是返回字符串str2在str1的位置,没有找到则返回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中= !相对== 更为严格需要要求数据类型一致。
下面的输出结果会是怎样?
PHP
|
1
2
3
4
5
6
7
8
9
10
|
$x = 5;
echo $x;
echo " |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|
|