我的脚本在这里有问题。 我有这个数组:
Array
(
[KUNDENNUMMER] =>
[BEZ] =>
[DATUM] => 2014-10-10
[VON] => 11:10:36
[BIS] => 11:48:11
[TAETIGKEIT] => Berufschule
[BEZ_01] =>
[DAUER] => 0001-01-01 00:37:00
[STUNDEN] => 0.61
[VERRECHENBAR] => F
[BEMERKUNG] => 0x000c5cf2000000ba
[USER_BEZ] => Armani, Kia
[TZ_BEZ] =>
[TT_VERRECHENBAR] => F
[TT_ID] => 80
)
我想回应#34; Cake"当$ row(数组)[TAETIGKEIT] == Berufschule使用此代码
if(strpos($row['TAETIGKEIT'], 'Berufschule') === true) echo "Cake";
但回声永远不会被调用。 我也试着直接比较
if($row['TAETIGKEIT'] == 'Berufschule') echo "Cake";
但它也没有用。 当我做的时候
print_r($row['TAETIGKEIT'];
打印
Berufschule
我做错了什么?
答案 0 :(得分:1)
总结一下,有问题的代码可能因各种原因而无法正常工作。
我只能假设TAETIGKEIT
的值具有尾随或前一个空格。
if(strpos($row['TAETIGKEIT'], 'Berufschule') === true) echo "Cake";
// doesn't work since strpos returns an integer if string is found or `false` if not.
// it never returns true
if($row['TAETIGKEIT'] == 'Berufschule') echo "Cake";
// doesn't work due to the superfluous space, thus it's not exactly the same
解决方案是正确使用strpos
if(strpos($row['TAETIGKEIT'], 'Berufschule') !== false) echo "Cake";
或者在比较之前修剪值
if(trim($row['TAETIGKEIT']) == 'Berufschule') echo "Cake";
正如h2ooooooo所述,var_dump
会显示这些附加空格。
答案 1 :(得分:0)
strpos
永远不会返回true
- 它返回false
或整数值,因此使用=== true
您将永远无法通过。
试试:
strpos($row['TAETIGKEIT'], 'Berufschule') !== false