2011-05-10 4 views
0

Простой вызов substr не работает должным образом. Я хочу захватить только строки, которые заканчиваются косой чертой. Вот семь строк.Что приводит к сбою substr?

HELLO/NN, SMILE/JJ, JUMP/, GOOD/RB, GREAT/JJ, HAPPY/NNP, SEAPORT/ 


$m = substr($string, -1); 

if ($m = "/") { 
    echo $string; 
} 

Этот код как-то возвращает true каждый раз. Все семь слов напечатаны. Я пробовал strrev и многие другие строковые функции. Кажется, это не вопрос. Я могу буквально печатать $ m и видеть, что это «/», но оператор if решает, что каждое слово соответствует критериям $ m = "/". Даже тогда, когда $ м не является "/"

ответ

7

Оператор сравнения ==, не =:

if ($m == "/") { 
    echo $string; 
} 
4

Это не должно быть ==, а не =?

1
if ($m = "/") { 

Вы назначаете значение "/" равным $ m, и эта оценка возвращает true. Вы хотите сравнить и должны использовать

if ($m == "/") { 
+0

Это откровение для меня, я думал = и == были взаимозаменяемыми. Импорт из древних дней Qbasic. – user734063

Смежные вопросы