Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как лучше поступить (массив, константы, параметры функции)?
 
 автор: а-я   (08.06.2008 в 20:06)   письмо автору
 
 

Есть функция, в которой происходит получение данных.
Вот теперь мне из этой функции надо получить данные.
Как лучше это сделать?

1)
Использовать константы:

<?
   
// Вызов функции, запрос в БД. Создание констант
  
INFO();
  
 echo 
var1
 
 function 
INFO($A='')
 {
   .....
  
$MS mysql_fetch_assoc($SQL);
  
// Создаем константы 
  
define('var1',$MS['var1']);
  ...
  
define('varN',$MS['varN']);
 }
?>



2)
Использовать массив:

<?
  
// Первый вызов функции, запрос в БД
  
INFO();
 
//  2ой запрос, получение данных
 
$INFO INFO();
 
 echo 
$INFO['var1'];


 function 
INFO($A='')
 {
  static 
$MS;
   if(empty(
$MS))
    
$MS mysql_fetch_assoc($SQL);
   else
    return 
$MS;
 }
?>


3)
Использовать параметры функции:

<?
  
// Первый вызов функции, запрос в БД
  
INFO();

 echo 
INFO('var1');

 function 
INFO($A='')
 {
  static 
$MS;
   if(empty(
$MS))
    
$MS mysql_fetch_assoc($SQL);
   else
    return 
$MS[$A];
 }
?>


Минусы
1 - много констант, может быть до 100, некоторые могут и не использоваться.
2 - хранение одинаковых данных. т.е. сама функция будет хранить массив и новый массив.
3 - частый вызов функции.

   
 
 автор: BinLaden   (08.06.2008 в 20:18)   письмо автору
 
   для: а-я   (08.06.2008 в 20:06)
 

На мой взлгяд, Вам вообще стоит задуматься о целесообразности определения такой функции. Толку от неё немного.

А вообще делайте как удобвнее Вам.

   
 
 автор: а-я   (08.06.2008 в 20:38)   письмо автору
 
   для: BinLaden   (08.06.2008 в 20:18)
 

это функция от сессии на мускуле.

session_set_save_handler();
session_start();

   
 
 автор: BinLaden   (08.06.2008 в 21:11)   письмо автору
 
   для: а-я   (08.06.2008 в 20:38)
 

Я не понимаю, с чего Вы взяли, что session_start() должна возвращать массив или строку.

   
 
 автор: а-я   (08.06.2008 в 23:23)   письмо автору
 
   для: BinLaden   (08.06.2008 в 21:11)
 

Просто я использую свой механизм сессии.
только в БД все переменные записываю не как одну строку, а отдельно по разым полям.
Чтоб можно было делать выборку.
Вот теперь из функции, которая призводит чтение,
мне надо вытащить все переменные, которые приходит через запрос.

   
 
 автор: BinLaden   (08.06.2008 в 23:28)   письмо автору
 
   для: а-я   (08.06.2008 в 23:23)
 

Мне интересно, а что тогда функции чтения Вы пихать сообираетесь (третья функция в списке аргументов session_set_save_handler)?

   
 
 автор: а-я   (08.06.2008 в 23:40)   письмо автору
 
   для: BinLaden   (08.06.2008 в 23:28)
 

вот как раз я про эту функцию и говорю.
По ней происходит чтение из БД. по правилам я должен вернуть(return) строку. ну у меня ее нет.
т.к. я использую все отдельно.... вот теперь мне из этой функции надо взять эти данные.

есть способ сделать их глобальными??

   
 
 автор: BinLaden   (08.06.2008 в 23:53)   письмо автору
 
   для: а-я   (08.06.2008 в 23:40)
 

> вот как раз я про эту функцию и говорю

А что же написали session_start() и сбили с толку?

> я использую все отдельно
> есть способ сделать их глобальными??

Отпадает весь смысл замены стандартного механизма. Может Вам не стоит этого делать?

   
 
 автор: а-я   (09.06.2008 в 00:08)   письмо автору
 
   для: BinLaden   (08.06.2008 в 23:53)
 

>> вот как раз я про эту функцию и говорю
>
>А что же написали session_start() и сбили с толку?
session_set_save_handler();
session_start();
это я так неудачно намекнул на собственный механизм сессии


>> я использую все отдельно
>> есть способ сделать их глобальными??
>
>Отпадает весь смысл замены стандартного механизма. Может Вам не стоит этого делать?
Нет. мне он намного удобней... я понимаю, что будет потеря в скорости, но по проекту это будет самым оптимальный вариант

я нашел выход) и он был до глупости прост

<?
 
function INFO($A=''
 { 
    
$_SESSION mysql_fetch_assoc($SQL); 
 }
?>

Вот и все) это переменная глобальна)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования