|
|
|
| начинаю потихоньку осваивать ООП , и замыслил сделать несколько классов один из которых примерно такой
<?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 использует ещё такие классы как этот
// даже если не так , если переиграть , и это будет класс который используется во всех остальных классах.
както можно использовать методы всех классов в одном скрипте ? | |
|
|
|
|
|
|
|
для: EXP
(17.10.2007 в 00:58)
| | Я думаю что не стоит для этого ипользовать классы. Можно просто извлечь и глобального массива необходимый элемент и использовать его по назначению. Да и вообще РНР изначально не ООП (я не говорю про РНР5), поэтому лучше обходиться без классов. | |
|
|
|
|
|
|
|
для: EXP
(17.10.2007 в 00:58)
| | А что означает этот оператор: "=&"? | |
|
|
|
|
|
|
|
для: tAleks
(17.10.2007 в 12:21)
| | ;) | |
|
|
|
|
|
|
|
для: tAleks
(17.10.2007 в 12:21)
| | Вам в учебник по РНР | |
|
|
|
|
|
|
|
для: 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"], 1, 15) ;
if (isset($_SERVER["HTTP_USER_AGENT"]))
$this->USERVARS['browser'] = self::filtr($_SERVER["HTTP_USER_AGENT"], 1, 100) ;
}
public function filtr($vvod, $flag = 0, $dlin = 1024)
{
$dan = mb_substr( trim("$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 получать правильно
например статус пользователя полученный из базы данных.
как примерно такое делается ?, если делается | |
|
|
|