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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Класс в массив загнать...

Сообщения:  [1-7] 

 
 автор: isset   (22.04.2006 в 14:36)   письмо автору
 
   для: isset   (22.04.2006 в 14:26)
 

примерно так:

<?php
class user implements ArrayAccess 
{
  var 
$id 12345;
  var 
$name 'Petr Ivanovich';

function 
offsetExists($offset) {
    return 
in_array($offsetarray_keys(get_object_vars($this)));
}

function 
offsetGet($offset){
    return 
$this->$offset;
}

function 
offsetSet($offset$value) {
    
$this->$offset $value;
}

function 
offsetUnset($offset) { return 0; }
}
$users = array();

$user_cl = new user($id);
$users[0] = $user_cl;

echo 
$users[0]['id'] . ' of ' $users[0]['name']; 
?>

   
 
 автор: isset   (22.04.2006 в 14:26)   письмо автору
 
   для: СекторЁнок   (21.04.2006 в 14:43)
 

такое возможно под php5

   
 
 автор: Kouta   (22.04.2006 в 14:21)   письмо автору
 
   для: СекторЁнок   (22.04.2006 в 07:06)
 

а если так

<?
for ( $i 0$i count($user_list); $i++ ) 

if ( 
$users$user_list[i] ]['id'] == ''
  { 
  
$user_cl = new user$user_list[i] ); 
  
$users[$user_list[i]]['id'] = $user_cl->id;
  
$users[$user_list[i]]['name'] = $user_cl->name;
  } 
echo 
$users$user_list[i] ]['name']; 

?>

   
 
 автор: cheops   (22.04.2006 в 11:03)   письмо автору
 
   для: СекторЁнок   (21.04.2006 в 14:43)
 

Не понятно вот что в массив заганяется объект или класс? и какой массив?

   
 
 автор: СекторЁнок   (22.04.2006 в 07:06)
 
   для: localGhost   (21.04.2006 в 14:52)
 

>насколько я понял нужно это:
Нет, не это:)

>может нужно так?:
Вы правы...

Мне нужно скопировать переменные класса ($user_cl) в массив($users)
$user_list - массив, в котором хранятся id пользователей( могут быть повторяющиеся значения)
Цель задачи, если данные пользователя были уже занесены в массив, то просто вывести данные из массива, иначе создать элемент класса и занести его данные в массив.
брр, надеюсь Вы поняли:)

for ( $i=0; $i < count($user_list); $i++ )
 {
 if ( $users[ $user_list[i] ]['id'] == '')
  {
  $user_cl = new user( $user_list[i] ); 
  $users[$user_list[i]] = $user_cl;
  }
 echo $users[ $user_list[i] ]['name'];
 }

вроде этого, но это не работает( естественно:))

   
 
 автор: localGhost   (21.04.2006 в 14:52)   письмо автору
 
   для: СекторЁнок   (21.04.2006 в 14:43)
 

насколько я понял нужно это:

<? 
$user_cl 
= new user($id); 
echo 
$user_cl -> name
?> 


только вот не совсем понятно часть кода класса:


$row = mysql_fetch_array($query) 
    { 
     $this->id=$row["id"]; 
     $this->name=$row["name"]; 
    } 


может нужно так?:

<?
$row 
mydel_fetch_array (mysql_query ("SELECT * FROM usersWHERE id = $id "));

$this->id=$row["id"]; 
$this->name=$row["name"]; 

?>

   
 
 автор: СекторЁнок   (21.04.2006 в 14:43)
 
 

Мне нужно скопировать класс в массив, а как это сделать я не знаю:)
т.е. мне нужно что-то подобное:

<?php
$user_cl 
= new user($id);
$users[$id] = $user_cl
echo $users[$id]['name'];
?>



<?php
class user
 
{
  var 
$id;    //номер
  
var $name;  //название

   
function user($id)
   {
   
$query mysql_query ("SELECT * FROM usersWHERE id = $id ");
   
$row mysql_fetch_array($query)
    {
     
$this->id=$row["id"];
     
$this->name=$row["name"];
    }
   }

}
?>

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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