str_replace номер махинации
Хорошо, я в настоящее время озадачен этим.
У меня есть этот код:
ECHO $CHECKVOTINGROW[VOTECHOICES];
ECHO $STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES])
выход UUUSSS1
Таким образом, строка замены U в UUUSSS возвращает 1 вместо SSS.
Что за глупость мне не хватает с этим?
Редактировать:
$ CHECKVOTINGROW [ГОЛОСОВАНИЯ] ОРИГИНАЛЬНОЕ ЗНАЧЕНИЕ - UUUSSS
Я пометил это для удаления, спасибо за помощь. Должно быть проблема в другом месте, вызывающая проблемы. Я не буду подвергать людей большему количеству кода для разбора. Еще раз спасибо.
2 ответа
Во-первых, вы повторяете результат операции присваивания:
ECHO $STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES])
Вы хотите это:
$STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES]);
ECHO $STRREPLACECHECKVOTECHOICES;
Повторяющий результат операции присваивания выводит значение, которое было присвоено. Предоставленный вами вывод не соответствует реальному выводу этой команды:
UUUSSSSSSSS
Проверьте свой код. Вы ошиблись ==
как =
? Если операция равенства прошла успешно (True
), имеет смысл, что результат может быть приведен к 1
(1 - истина, 0 - ложь), в результате чего вы получите UUUSSS1
, К вашему сведению: мой PHP не работает True
в 1
, но твоя мощь.
PS: этот стиль кодирования вредит моим глазам.
Следующие работы:
<?php
$ch="UUUSSS";
echo $ch."\n";
$STR = STR_REPLACE("U","",$ch);
echo $STR."\n";
?>
Производит
UUUSSS
SSS
Как и ожидалось.
Как написано, ваш код повторяет присвоение... не уверен, что это хорошая идея (хотя это не незаконно). Держите вещи удобочитаемыми - это, как правило, хорошая идея. "одна вещь в строке кода".
РЕДАКТИРОВАТЬ Я нашел способ генерировать ваш вывод:
<?php
$ch="UUUSSS";
echo $ch;
$STR = "SSS";
echo $STR == STR_REPLACE("U","",$ch);
echo "\n";
?>
Это генерирует точно
UUUSSS1
Как вы заметили. Таким образом, остается вопрос: вы уверены, что код, который доставляет вам неприятности, это именно тот код, который написан?
Примечание - использование короткого имени переменной в примере, как правило, хорошая идея...