|
|
|
| Есть функция, в которой происходит получение данных.
Вот теперь мне из этой функции надо получить данные.
Как лучше это сделать?
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 - частый вызов функции. | |
|
|
|
|
|
|
|
для: а-я
(08.06.2008 в 20:06)
| | На мой взлгяд, Вам вообще стоит задуматься о целесообразности определения такой функции. Толку от неё немного.
А вообще делайте как удобвнее Вам. | |
|
|
|
|
|
|
|
для: BinLaden
(08.06.2008 в 20:18)
| | это функция от сессии на мускуле.
session_set_save_handler();
session_start(); | |
|
|
|
|
|
|
|
для: а-я
(08.06.2008 в 20:38)
| | Я не понимаю, с чего Вы взяли, что session_start() должна возвращать массив или строку. | |
|
|
|
|
|
|
|
для: BinLaden
(08.06.2008 в 21:11)
| | Просто я использую свой механизм сессии.
только в БД все переменные записываю не как одну строку, а отдельно по разым полям.
Чтоб можно было делать выборку.
Вот теперь из функции, которая призводит чтение,
мне надо вытащить все переменные, которые приходит через запрос. | |
|
|
|
|
|
|
|
для: а-я
(08.06.2008 в 23:23)
| | Мне интересно, а что тогда функции чтения Вы пихать сообираетесь (третья функция в списке аргументов session_set_save_handler)? | |
|
|
|
|
|
|
|
для: BinLaden
(08.06.2008 в 23:28)
| | вот как раз я про эту функцию и говорю.
По ней происходит чтение из БД. по правилам я должен вернуть(return) строку. ну у меня ее нет.
т.к. я использую все отдельно.... вот теперь мне из этой функции надо взять эти данные.
есть способ сделать их глобальными?? | |
|
|
|
|
|
|
|
для: а-я
(08.06.2008 в 23:40)
| | > вот как раз я про эту функцию и говорю
А что же написали session_start() и сбили с толку?
> я использую все отдельно
> есть способ сделать их глобальными??
Отпадает весь смысл замены стандартного механизма. Может Вам не стоит этого делать? | |
|
|
|
|
|
|
|
для: BinLaden
(08.06.2008 в 23:53)
| | >> вот как раз я про эту функцию и говорю
>
>А что же написали session_start() и сбили с толку?
session_set_save_handler();
session_start();
это я так неудачно намекнул на собственный механизм сессии
>> я использую все отдельно
>> есть способ сделать их глобальными??
>
>Отпадает весь смысл замены стандартного механизма. Может Вам не стоит этого делать?
Нет. мне он намного удобней... я понимаю, что будет потеря в скорости, но по проекту это будет самым оптимальный вариант
я нашел выход) и он был до глупости прост
<?
function INFO($A='')
{
$_SESSION = mysql_fetch_assoc($SQL);
}
?>
|
Вот и все) это переменная глобальна) | |
|
|
|