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

Как вы заметили. Таким образом, остается вопрос: вы уверены, что код, который доставляет вам неприятности, это именно тот код, который написан?

Примечание - использование короткого имени переменной в примере, как правило, хорошая идея...

Другие вопросы по тегам