3

たとえば、与えられたコード:

if(strstr($key, ".")){
    // do something
}

strstrは文字列を返しますが、ブール値としてどのように使用できますか?それはどのように真または偽になりますか?

4

4 に答える 4

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---->必須。検索する文字列を指定します

search---->必須。検索する文字列を指定します。このパラメータが数値の場合、数値のASCII値に一致する文字を検索します。

于 2013-02-03T20:35:06.223 に答える
1

PHPドキュメントからの引用:

文字列の一部を返します。針が見つからない場合はFALSEを返します。

したがって、ブールチェックは基本的に、部分文字列(.この場合)がまったく見つからないかどうかです。

この関数が返すことができる他の値は空でない文字列であり、trueと評価されます(ドキュメントのこのエントリを参照してください)。

于 2013-02-03T20:35:50.343 に答える
1

これは単純です。ifステートメントで、空でない値、たとえば空でない文字列がある場合、これはtrueです。例えば:

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
}
于 2013-02-03T20:45:25.510 に答える
1

strstrの戻り値は、ブール値(false)または文字列のいずれかです。

$strstr = strstr($key, '.');
if(is_string($strstr)){
 echo 'is found';
}

or 

if($strstr === false){
 echo 'not found';
}

注:文字列はboolにキャストされないため、is_bool($ strtsr)も使用できます(true)

echo is_bool('test') ? 'true' : 'false'; //false
于 2013-02-03T20:46:40.267 に答える