Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите написать функцию для сокращения кол-во кода

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Постоянно мучают нотисы при написании функции
Andrey2005
Отправлено: 26 Февраля, 2009 - 18:27:48
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Февр. 2009  


Помог: 0 раз(а)




У меня много в коде строк типа
CODE (text):
скопировать код в буфер обмена
  1. $name = $data['name'] = $_POST['name']

CODE (text):
скопировать код в буфер обмена
  1. $name =  $_POST['name']

Помогите написать функцию для уменьшения строк кода, а то у меня постоянно возникают Undefined varible

(Отредактировано автором: 26 Февраля, 2009 - 18:28:30)

 
 Top
valenok
Отправлено: 26 Февраля, 2009 - 18:37:36
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Ctrl H
-> $name
-> $_POST['name']

Должно сработать даже в ноутпаде.
Зачем тебе приспичило переменные переименовывать ?


-----
Truly yours, Sasha.
 
My status
 Top
Andrey2005
Отправлено: 26 Февраля, 2009 - 18:45:30
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Февр. 2009  


Помог: 0 раз(а)




valenok пишет:
Зачем тебе приспичило переменные переименовывать ?

В одной из книг советовали для удобства укорачивать имена переменных, в том же блоке использую trim, addslashes и т.д.
 
 Top
Ch_chov
Отправлено: 26 Февраля, 2009 - 19:08:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




PHP:
скопировать код в буфер обмена
  1. foreach($_POST as $k => $val) $$k=$val;

На выходе даст набор переменных, имена которых совпадают с ключами в массиве $_POST

Имхо лучше все таки пользовать $_POST , $_GET и $_REQUEST
С ними код становится понятней и безопасней...

(Отредактировано автором: 26 Февраля, 2009 - 19:12:14)

 
 Top
valenok
Отправлено: 26 Февраля, 2009 - 19:14:55
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Andrey2005 а они не написали как это сделать ? Или они там же посоветовали укорачивать имена
переменных добавляя еще сотню строк с переприсваиванием ?

Надеюсь из меня лучше писатель получится...

PHP:
скопировать код в буфер обмена
  1. <?PHP foreach($_REQUEST AS $key => $val ) $$key = addslashes(trim($val));


А от undefined variable тебя это не спасёт. Если её пользователь не прислал, она сама ниоткуда не объявится.
Проверку нужно ставить - существует ли вообще переменная или нет.

А еще с кодом выше забавно получится если тебе еще и добавят какой нибудь admin=1
так что тебе еще лучше сразу указать какие переменные должны быть обработаны и созданы.
А это удлинение твоего кода, а если они в этой книге не объясняют как сократить и только кидаются
полезными советами...

Сокращать имеет смысл когда у тебя одна, две, пять переменных и ты их используешь 50 раз в коде.
А зачем тебе каждую переменную сокращать, да и к тому же, где это ты нашёл кардинальное скоращение
между $_POST['name'] и $data['name'] яне вижу.


-----
Truly yours, Sasha.
 
My status
 Top
Ch_chov
Отправлено: 26 Февраля, 2009 - 19:28:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




CODE (text):
скопировать код в буфер обмена
  1. foreach($_REQUEST AS $key => $val ) $$key = addslashes(trim($val));

Не поможет, если в в $_REQUEST присутствуют вложенные массивы.

(Отредактировано автором: 26 Февраля, 2009 - 19:29:14)

 
 Top
Andrey2005
Отправлено: 26 Февраля, 2009 - 21:19:21
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Февр. 2009  


Помог: 0 раз(а)




Прошу прощения за офтоп, а что это за комбинация
? Где за это можно прочитать и как называется эта конструкция ?
 
 Top
valenok
Отправлено: 26 Февраля, 2009 - 21:47:36
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Andrey2005 Называется переменная переменная.
http://php.net/manual/ru/languag...les.variable.php


-----
Truly yours, Sasha.
 
My status
 Top
Вездеход
Отправлено: 26 Февраля, 2009 - 21:51:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




если написать так - $$key
то будет создана новая переменная с названием равным значению переменной $key

т.е.
$a="xxx";
$$a="2";

в результате этого получаем $xxx=2


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB