Boolean false回显空字符串

时间:2017-07-05 11:41:02

标签: php boolean strpos

我已经尝试过一切!我试图找出用户"销售管理员"在字符串中是允许的。我试过爆炸了弦乐和弦乐。把它放在一个数组中,我已经尝试了strpos(在下面的代码中),preg匹配甚至if (strpos($userAllowedString, $userRole) > -1)。结果总是空的。结果应该是假的,但它没有回馈任何东西。

$userAllowedString = "Sales Manager,Sales Director,Project Manager,Developer";
$userRole = "Sales Administrator";

if(strpos($userAllowedString,$userRole) !== false) { 
     $userAllowed= true; 
} else {
     $userAllowed = false; 
}

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

尝试使用'true'或'false'之类的值,而不是truefalse。因为没有引号本身的真或假代表空字符串。

$userAllowedString = "Sales Manager,Sales Director,Project Manager,Developer";
$userRole = "Sales Administrator";
$userAllowedString = explode(',', $userAllowedString);

if(in_array($userRole, $userAllowedString)) { 
     $userAllowed= 'true'; 
} else {
     $userAllowed = 'false'; 
}
echo $userAllowed; //false

工作示例:https://3v4l.org/Zkg9b

答案 1 :(得分:1)

您可以使用in_array()

$userAllowedString = "Sales Manager,Sales Director,Project Manager,Developer";
$userRole = "Sales Administrator";
$userAllowed = in_array($userRole, explode(',', $userAllowedString));

答案 2 :(得分:0)

我想为此任务推荐php builtin function in_array()。正如评论中已经说过的那样,我希望将其添加为详细信息的答案

$userAllowedString = "Sales Manager,Sales Director,Project Manager,Developer";
$userRole = "Sales Administrator";
$userAllowedString = explode(',', $userAllowedString);

if(in_array($userRole, $userAllowedString)) { 
     // True
     $userAllowed= 'true'; 
} else {
     // False
     $userAllowed = 'false'; 
}


 echo $userAllowed; //false

答案 3 :(得分:0)

不要使用in_array()过度杀伤。你的脚本正常工作。

当你回显变量时,你只是看不到结果,因为布尔false将输出一个空字符串。布尔true将回显1。使用echo之外的其他内容,例如var_export()来显示实际的布尔值。

代码:(Demo

$userAllowedString = "Sales Manager,Sales Director,Project Manager,Developer";
$userRole = "Sales Administrator";

if(strpos($userAllowedString,$userRole) !== false) { 
     $userAllowed= true; 
} else {
     $userAllowed = false; 
}

echo "\n----\n";
var_export($userAllowed);
echo "\n----\n";
echo false;
echo "\n----\n";
var_export(true);
echo "\n----\n";
echo true;

输出:

----
false
----

----
true
----
1