Проблема с вызовом своей функции

RASAMAHA

Новичок
Проблема с вызовом своей функции

Здравствуйте, наверно моя проблема известна, или я просто торможу, но на мой взгляд очевидный код не работает.
Привожу кусок кода:
Из формы получена переменая $text, её мы пытаемся обработать.
PHP:
function parser($new_text) {
     $new_text=trim($new_text);
     if (get_magic_quotes_gpc()){
             $new_text = stripslashes($new_text);
         }
     $new_text=str_replace("\r","",$new_text);
     $new_text=str_replace("\n","<br>",$new_text);
     $new_text = htmlspecialchars($new_text);
     $new_text = str_replace("1","2",$new_text);
     $new_text = str_replace("3","4",$new_text);
     $new_text = str_replace("5","6",$new_text);
     $new_text = str_replace("7","8",$new_text);

     return $new_text; // Опечатка была, извените.
     }
// Вызываем функцию
     parser($text);
Но нифига :( не работает. Работает только если обрабатывать $text без функции.

Что я не так делаю, или не так понимаю :confused:
 

chillz

Guest
PHP:
return $text1;
Если обрабатывешь $new_text, то и возвращай его.
 

amorfis

я стараюсь
Функция возвращает переменную $text1, хотя в работе функции она ни как не задействована. Может на сделать так:
PHP:
return $new_text;
 

RASAMAHA

Новичок
SiMM мне выводить не нужно, выводиться значение переменной в другом месте. text1 это опечатка, у меня стоит $new_text. Прошу прощенья.

baev нет, дело не в этом. Если делать не через функцию, а по отдельности, то всё работает.
То есть:
PHP:
$text=trim($text); 
     if (get_magic_quotes_gpc()){ 
             $text = stripslashes($text); 
         } 
     $text = str_replace("\r","",$text); 
     $text = str_replace("\n","<br>",$text); 
     $text = htmlspecialchars($text); 
     $text = str_replace("1","2",$text); 
     $text = str_replace("3","4",$text); 
     $text = str_replace("5","6",$text); 
     $text = str_replace("7","8",$text);
Тогда всё работает, но у меня много переменных как $text, ИМХО обработать их своей функцией легче, для этого они и нужны ;)
 

SiMM

Новичок
Я бы тебе сказал про область видимости - но ты неправильно поймёшь. Не надо выводить - не выводи (откуда я знаю, что тебе надо? я не телепат)
Вариант 1:
PHP:
$text = parser($text);
Вариант 2:
Воздержусь. Ибо, наверно, рано пока.
 

RASAMAHA

Новичок
Вызываю функцию после её определения, как в первом посте :(
 

RASAMAHA

Новичок
SiMM спасибо, точно. Извените за столь глупый вопрос.
>>> Не надо выводить - не выводи (откуда я знаю, что тебе надо? я не телепат)
Как говориться, чтобы задать правильно вопрос, надо знать больше половины ответа ;)


А можно про второй вариант?

-~{}~ 24.07.05 19:21:

Блин, пока ещё навыка мало, такие ошибки у меня не редкий гость.
Про echo я понял, если бы сделал, то тогда бы вывело.
 

SiMM

Новичок
> А можно про второй вариант?
Ну поскольку "бесплатные" овтеты кончились - то дальше придётся приступить к самостоятельной работе
[m]functions.arguments#functions.arguments.by-reference[/m]
Но это невсегда удобно.

> Блин, пока ещё навыка мало, такие ошибки у меня не редкий гость.
Вот поэтому 2й вариант тебе ещё рано.
 

RASAMAHA

Новичок
В самой функции главное правильно вызываю, то есть $var = function($var);
А потом ошибся. Всему виной копи-паст.

-~{}~ 24.07.05 19:25:

>>> Ну поскольку "бесплатные" овтеты кончились - то дальше придётся приступить к самостоятельной работе
functions.arguments#functions.arguments.by-reference
Но это невсегда удобно.

О, с этим я точно пока запутаюсь :) Но уже читал про ссылки :)
 
Сверху