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

Форум PHP

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

 

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

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

тема: $_SERVER , class и '=&' ; стоит-ли
 
 автор: EXP   (17.10.2007 в 00:58)   письмо автору
 
 

начинаю потихоньку осваивать ООП , и замыслил сделать несколько классов один из которых примерно такой

<?php
class User
{
public 
$USERVARS = array();

 function 
__construct() {

     
$this->USERVARS['ip'] =& $_SERVER["REMOTE_ADDR"];
      
      if (isset(
$_SERVER["HTTP_X_FORWARDED_FOR"]))  
      
$this->USERVARS['x_ip'] =& $_SERVER["HTTP_X_FORWARDED_FOR"] ;
      
      if (isset(
$_SERVER["HTTP_USER_AGENT"])) 
      
$this->USERVARS['browser'] =&  $_SERVER["HTTP_USER_AGENT"] ;
    
  }

  
 public function 
dmp() { // тут вместо этого пара других методов
        
return var_dump($this->USERVARS);
 }

public function 
srlz() {
        return 
serialize($this->USERVARS);
 }

 } 
// end of Userclass 

 
$user = new User();
 print 
$user -> srlz() . "<hr>\n";
 
$user -> dmp() ;
  print 
'<hr>';
 
var_dump($user);
 echo 
'<hr>  ' $user -> USERVARS['ip'];

никак не соображу стоит-ли вообще выносить в отдельный класс получение из
суперглобального, этого маленького массива, что-бы потом его использовать с парой методов
в других классах с их методами .
не будет-ли прощще получать эти переменные строкой массивом или просто, непосредственно в других классах , всмысле соотнесённо с нагрузкой на сервер, быстродействием?
и это '=&' посути незанимая память просто ссылается на значение , оно вообще имеет смысл тут использоваться ?
и так и кажется что чего-то не хватает , может надо какое-нибудь 'static' где-то добавить
, для того что-бы пхп легче переварило это ?
и как лучше связать классы , что-бы создаваемые в них обьекты было удобнее использовать? если класс MySQL использует ещё такие классы как этот

// даже если не так , если переиграть , и это будет класс который используется во всех остальных классах.
както можно использовать методы всех классов в одном скрипте ?

   
 
 автор: mihdan   (17.10.2007 в 10:43)   письмо автору
 
   для: EXP   (17.10.2007 в 00:58)
 

Я думаю что не стоит для этого ипользовать классы. Можно просто извлечь и глобального массива необходимый элемент и использовать его по назначению. Да и вообще РНР изначально не ООП (я не говорю про РНР5), поэтому лучше обходиться без классов.

   
 
 автор: tAleks   (17.10.2007 в 12:21)   письмо автору
 
   для: EXP   (17.10.2007 в 00:58)
 

А что означает этот оператор: "=&"?

   
 
 автор: mihdan   (17.10.2007 в 12:23)   письмо автору
 
   для: tAleks   (17.10.2007 в 12:21)
 

;)

   
 
 автор: mihdan   (17.10.2007 в 12:26)   письмо автору
 
   для: tAleks   (17.10.2007 в 12:21)
 

Вам в учебник по РНР

   
 
 автор: EXP   (17.10.2007 в 14:19)   письмо автору
 
   для: mihdan   (17.10.2007 в 12:26)
 

я на php5 и хочу понять какой резон есть в применении объектов.
класс User кажется всё-равно нужен, как-бы пользователь попадает под понятие "объект"
, и в классе определяются всякие методы какие переменные с ним сопровождать , как обработать полученные от пользователя данные наверное лучше тоже определить в этом классе,
с другой стороны MySQL тоже как объект , в классе MySQL тоже как-бы сопровождение её .
изначально хотел делать класс Systema, который описывал-бы свойства самого интерпритатора
пхп, и как ему сопровождать остальные объекты, но тогда ещё больше получается этих классов.

насчёт =& наверное и правда лишнее,
непойму как сделать что-бы несколько разных классов нормально между собой взаимодействовали например
<?
class User
{
public 
$MQG;
public 
$USERVARS = array();
function 
__construct() {
    
$this->MQG get_magic_quotes_gpc();
     
$this->USERVARS['ip'] = $_SERVER["REMOTE_ADDR"];
      
      if (isset(
$_SERVER["HTTP_X_FORWARDED_FOR"]))  
      
$this->USERVARS['x_ip'] = self::filtr($_SERVER["HTTP_X_FORWARDED_FOR"], 115) ;
      
      if (isset(
$_SERVER["HTTP_USER_AGENT"])) 
      
$this->USERVARS['browser'] =  self::filtr($_SERVER["HTTP_USER_AGENT"], 1100) ;
    
  }

public function 
filtr($vvod$flag 0$dlin 1024
{
$dan mb_substrtrim("$vvod"), 0$dlin ); 
if (
$this->MQG === 1) {
switch (
$flag)
{
case 
1:
return 
"$dan";
break;
case 
2:
return 
addslashes(htmlspecialchars(stripslashes("$dan"), 3));
break;
default:
return 
stripslashes("$dan");
break;
}
} else {
switch (
$flag)
{
case 
1:
return 
addslashes("$dan");
break;
case 
2:
return 
addslashes(htmlspecialchars("$dan"3));
break;
default:
return 
"$dan";
break;
}
}

 }
 
 public function 
dmp() {
        return 
var_dump($this->USERVARS);
 }

public function 
srlz() {
        return 
serialize($this->USERVARS);
 }
/* тут нужны методы получения из  MySQL ещё некоторых данных */
 





 class 
MySQL extends User
{

/* тут несколько методов которые записывают в базу данные из User
другие методы записи не относящиеся к тому классу
методы считывания из базы , некоторые для класса User */
}


Возможно ещё будет пара классов не пойму как лучше связать два эти класса , интерфейс делать не очень понял как
используется , сделать главным классом User , как тогда из класса MySQL получать правильно
например статус пользователя полученный из базы данных.
как примерно такое делается ?, если делается

   
Rambler's Top100
вверх

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