Функция корректно отображающая в форме полученную переменную.

Ergo

Новичок
Функция корректно отображающая в форме полученную переменную.

Ситуация. Есть форма для поиска. Если был осуществлен поиск то в ней отображается поисковая фраза

PHP:
<input type="text" name="search" value="<? echo $_GET['search'];?>">
Но если никто ничего не искал, то естественно что переменной
PHP:
$_GET['search']
нет и в результате в окошке поиска отобразится ошибка

Код:
Notice:  Undefined index:  search
Проблему решает вот такая конструкция, проверяющая существование переменной:

PHP:
<input type="text" name="search" value="<? if (!empty($_GET['search'])) echo $_GET['search'];?>
Но я захотел написать функцию чтобы использовать ее и с другими полями, плюс ведь можно добавить stripslashes и т.д.

Функция типа:

PHP:
function myEcho($var) {
	if(!empty($var)) {
		echo $var;
	}
}
Вставляю ее как

PHP:
<input type="text" name="search" value="<? myEcho($_GET['search']);?>">
И вроде бы делает эта функция тоже самое что и вышеуказанная правильно работающая запись (по идее). Но с ней все равно получаю

Код:
Notice:  Undefined index:  search
В чем может быть загвоздка?
 

Profic

just Profic (PHP5 BetaTeam)
icechel
неверно. empty ведет себя так же как и isset.
Ergo
передавать нужно индекс значения, а не само значение, т.е. примерно так
PHP:
<? myEcho('search');?>
 

tony2001

TeaM PHPClub
>empty ведет себя так же как и isset.
PHP:
$var = "";
var_dump(isset($var));
var_dump(empty($var));
 

Profic

just Profic (PHP5 BetaTeam)
tony2001
(если это не понятно из контекста топика) я имел ввиду поведение относительно генерирования notice при неопределенной переменной/индексе
 

Ergo

Новичок
Автор оригинала: Profic
icechel
неверно. empty ведет себя так же как и isset.
Ergo
передавать нужно индекс значения, а не само значение, т.е. примерно так
PHP:
<? myEcho('search');?>
Ваша правда. И если передавать значение то тогда работает. Правда функция получается не универсальной :( Так бы ее можно было бы использовать и для POST и для GET и даже в любом другом контексте. А в этом случае получается узкоспециализированной :(
 

SelenIT

IT-лунатик :)
Ergo, может, передавать два значения - индекс и имя массива, в котором искать?
 
Сверху