如何更多地了解正在发生的事情?将您的条件分配给一个变量:
$result = $extra = "John" || "Kevin" || "Cameron" || "Santosh" || "Ali";
然后让你的情况可见:
var_dump($result);
这会给你:
bool(true)
这意味着条件导致布尔值true
(demo)。为什么会发生这种情况,您现在可能会问自己。为此,您可以将条件分开:
"John" || "Kevin" || "Cameron" || "Santosh" || "Ali"
这是true
PHP 中的表达式。您可以将其替换为true
. 接下来的部分:
$extra = true;
这很容易。您分配true
给变量$extra
. 现在是最后一部分:
$result = true;
同样,现在将表达式的结果分配给$result
so 你看true
。
相反,您可能想检查变量是否$extra
包含任何名称。PHP 中有一些注意事项可以正确地做到这一点。首先让您的生活更轻松,并将您想要检查的所有名称放入一个数组中:
$names = array("John", "Kevin", "Cameron", "Santosh", "Ali");
然后严格检查$extra
该数组中的内容:
$result = in_array($extra, $names, true);
请注意此处的第三个参数true
,即用于严格检查(请参阅in_array
Docs)。否则,您可能会看到如果$extra
是0
这样$result
的话。然后处理结果,但让你的生活再次变得轻松,你只需要一个变量:
$image = $result ? 'maria2.png' : 'maria.png';
然后最后做输出:
printf(
'<img src="http://yespricer.com/theme/Freshness/images/%s" width="75"/>'
, $image
);
你已经解决了你的问题。完整的代码示例:
$names = array("John", "Kevin", "Cameron", "Santosh", "Ali");
$result = in_array($extra, $names, true);
$image = $result ? 'maria2.png' : 'maria.png';
printf(
'<img src="http://yespricer.com/theme/Freshness/images/%s" width="75"/>'
, $image
);
演示
另见: