#php #function #str-replace
Вопрос:
Поэтому я создал функцию, позволяющую изменять буквы из отдельных букв на 2-значное число.
Это и есть код:
lt;?php function Letter2number($abc) { //A = 00 str_replace('a','00',$abc); str_replace('A','00',$abc); //B = 01 str_replace('b','01',$abc); str_replace('B','01',$abc); //C = 02 str_replace('c','02',$abc); str_replace('C','02',$abc); //D = 03 str_replace('d','03',$abc); str_replace('D','03',$abc); //E = 04 str_replace('e','04',$abc); str_replace('E','04',$abc); //F = 05 str_replace('f','05',$abc); str_replace('F','05',$abc); }
?gt;
Когда переменная из ввода формы обрабатывается с помощью этой функции, она должна была выводить 2-значное число.
Но вывод пустой.
Есть идеи, что я делаю не так?
Комментарии:
1. Я хотел бы увидеть больше кода, чтобы рассказать вам, где все пошло не так, в любом случае, я думаю, что ord( $character) делает то, что уже делает ваша функция
2. Я вижу, вы решили свою проблему, если вы используете strtolower или верхний в PHP, вам нужно будет сопоставить только одну букву вместо двух, одну для нижнего и одну для верхнего. Если только вам действительно не нужно возвращать заглавную или строчную букву
Ответ №1:
Первая попытка программирования? Я надеюсь, что ты немного повеселишься. В вашем коде есть две основные проблемы, обе они связаны с возвращаемыми значениями.
- Что-то вроде
str_replace('F','05',$abc);
возвращает строку, с которой вам нужно что-то сделать. Например:$abc = str_replace('F','05',$abc);
. - Ваш
function
ничего не возвращает. В нижней части функции используйтеreturn $abc;
.
Также рассмотрите свой выбор имени переменной: $abc
подразумевается, что оно содержит алфавит, а не одну букву. Лучшим именем было бы $letter
.
совет: Я использовал $abc
приведенные выше пункты, чтобы не смущать вас еще больше, но сам код далек от оптимального. Можете ли вы сделать это лучше?
Комментарии:
1. спасибо, совершенно пропустил возвращение. Я знаю некоторые базовые вещи и учусь у php.net и w3c.