例如给定代码:
if(strstr($key, ".")){
// do something
}
strstr返回一个字符串,它如何用作布尔值?它如何变为真或假?
答案 0 :(得分:2)
这是一个例子
<?php
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com
$user = strstr($email, '@', true); // As of PHP 5.3.0
echo $user; // prints name
?>
<强>定义:强>
strstr()
函数在另一个字符串中搜索第一次出现的字符串。
此函数返回字符串的其余部分(来自匹配点),如果找不到要搜索的字符串,则返回FALSE。
strstr(string,search)
string
----&gt;需要。指定要搜索的字符串
search
----&gt;需要。指定要搜索的字符串。如果此参数是数字,它将搜索与数字的ASCII值匹配的字符。
答案 1 :(得分:1)
引自the PHP docu:
返回字符串的部分,如果未找到needle,则返回FALSE。
所以布尔检查基本上是,是否找到子串(在这种情况下为.
)。
此函数可以返回的任何其他值都是非空字符串,将被评估为真实(请参阅文档中的this entry。)
答案 2 :(得分:1)
这很简单:在if语句中,当我们有一个空值,例如非空字符串时,这是真的。例如:
if("test") { //this is true
}
$value = "test";
if($value) { //this is true
}
$value = 3;
if($value) { //this is true
}
另一方面,如果你有一个空变量,那么在if语句中它就像false一样。例如:
$var = 0;
if($var) { //this is false
}
$var = false;
if($var) { //this is false
}
$var = "";
if($var) { //this is false
}
所以在你的情况下你有:
$key = "test.com"
$val = strstr($key, "."); //Return ".com"
if ($val) { //This is not a non empty string so it is true
}
$key = "justtest"
$val = strstr($key, "."); //Return boolean false so it is false
if ($val) { //This is returning boolean false
}
答案 3 :(得分:1)
strstr的返回是boolean(false)或string,然后是
$strstr = strstr($key, '.');
if(is_string($strstr)){
echo 'is found';
}
or
if($strstr === false){
echo 'not found';
}
注意:也可以使用is_bool($ strtsr),因为字符串不会被转换为bool(true)
echo is_bool('test') ? 'true' : 'false'; //false