Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] глобальные переменные в php

Ответить
Настройки темы
[решено] глобальные переменные в php

Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


люди выскажите свои мнения насчет глобальных переменных в php. Имею в виду пользовательские. Есть две функции, надо из первой функции взять значение нескольких переменных из второй. Return не подходит, тк уже выдается другое значение. Как сделать это правильно. Пример

function a(){
n1=1;
n2=2;
}

function b(){

???(n1, n2)

}

Отправлено: 22:50, 17-04-2008

 

Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


PHP код: Выделить весь код

//rtm - через $GLOBALS обращайся везде...

$GLOBALS['n1'] = $GLOBALS['n1'] = 2;
//или
global $n1$n2


Отправлено: 23:29, 17-04-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


нет, я хотел сказать как избежать глобальных.

Отправлено: 00:15, 18-04-2008 | #3


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


bruder, иначе, рули аргументами (в зависимости от их значения пусть выдает то что нужно)...

Отправлено: 01:47, 18-04-2008 | #4


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


bruder,
Для этого есть понятие как объектно-ориентированное программирование. Создайте нужный класс и возвращайте объекты данного класса

PHP код: Выделить весь код

class MyFunctionReturnClass

{
public $n1;
public $n2;
}
-----------------------------------
function 
a(){
$ret=new MyFunctionReturnClass();
$ret->n1=1;
$ret->n2=2;

return 
$ret;


-------
Fortes fortuna adiuvat


Отправлено: 02:10, 18-04-2008 | #5


Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


вот кстати почему я и задал собстно вопрос. Я в начале написал класс. В фирме сторонники процедурного программирования и говорят что классы громоздки и медленны. Что если несколько функций хотят от класса чтолибо надо создавать новый объект что есть не гут.
PHP код: Выделить весь код

function a(){
$ret=new MyFunctionReturnClass();
}  


function 
b(){
$ret=new MyFunctionReturnClass();


Хотя можно наверно объявить его глобальным и передавать ссылкой

PHP код: Выделить весь код

$ret=new MyFunctionReturnClass();

function 
a(&$ret){
......


какие тут минусы?

Отправлено: 13:27, 18-04-2008 | #6


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата bruder:
классы громоздки и медленны »
Маразм!!!! "Громоздки" - если их не понимать. "Медленны" - у меня примерно 120 классов, из которых на каждой странице в среднем 40 подгружены - всё быстро и без проблем.
Весь мир работает с классами, потому что это удобно.

Цитата bruder:
надо создавать новый объект что есть не гут. »
Если у вас только не 10 Мб свободной памяти - на современных машинах нет проблем по обработке большого количества объектов

Цитата bruder:
Хотя можно наверно объявить его глобальным и передавать ссылкой »
Если уж совсем приспичало именно один раз класс инстанциировать, то почитайте про Singleton - то, что вам нужно

-------
Fortes fortuna adiuvat

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:21, 18-04-2008 | #7


Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


убедительно Пойду переписывать на классы. Спасибо за разъяснения

Отправлено: 15:10, 18-04-2008 | #8


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


Важно понимать различие ООП в PHP 4- и 5+ версий, т.е. это
Цитата vadimiron:
public $n1; »
только для PHP5

Классы imo применимы там, где действительно требуется объектная структура и много private-функций. Если же проект не громоздкий, то удобнее обычные функции...

т.е. необходимо самому прикинуть, что будет лучше... т.е.
Цитата vadimiron:
Весь мир работает с классами, потому что это удобно. »
это неправильный подход

Отправлено: 20:55, 18-04-2008 | #9


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


Цитата bruder:
если несколько функций хотят от класса чтолибо надо создавать новый объект »
Заблуждение.

rtm - для этого есть оператор "::"
Код: Выделить весь код
class::function();
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:07, 19-04-2008 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] глобальные переменные в php

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проблема с PHP(не передаются переменные из формы в PHP- скрипт) Kirander Вебмастеру 21 03-08-2009 01:11
[решено] Глобальные переменные (?) Frost_Imp AutoIt 8 29-07-2009 15:12
Разное - [PHP] Переменные CXREF Программирование и базы данных 2 16-06-2009 08:15
Переменные в PHP Guest Программирование и базы данных 6 11-09-2003 04:28
Переменные в PHP Guest Вебмастеру 1 10-01-2003 13:48




 
Переход