За последние 24 часа нас посетили 52482 программиста и 1763 робота. Сейчас ищут 1079 программистов ...

Работа с классами. Почему только последняя строка в масиве??

Тема в разделе "PHP для новичков", создана пользователем bogong, 30 сен 2011.

  1. bogong

    bogong Активный пользователь

    С нами с:
    20 май 2010
    Сообщения:
    114
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Есть код:
    Код (Text):
    1.  
    2. <?php
    3. header("Content-type: text/html; charset=utf-8");
    4. interface IUser{
    5.     function GetUserInfo($n,$l,$p,$r);
    6. }
    7. class UserManipulation implements IUser{
    8.     public $user_list=array();
    9.     public $user_name;
    10.     public $user_login;
    11.     public $user_password;
    12.     public $user_role;
    13.     function GetUserInfo($n,$l,$p,$r) {
    14.     $this->user_name=$n;
    15.     $this->user_login=$l;
    16.     $this->user_password=$p;
    17.     $this->user_role=$r;
    18.     $this->user_list=array(
    19.         $this->user_name=>array(
    20.         "Логин пользователя: "=>$this->user_login,
    21.         "Пароль пользователя: "=>$this->user_password,
    22.         "Роль пользователя: "=>$this->user_role));
    23.     }
    24.     function ShowUserInfo($n){
    25.     $this->user_name=$n;
    26.     echo $user_list[$this->user_name];
    27.     }
    28.     function ShowUserInfoAll(){
    29.     echo "<pre>\n";
    30.     print_r($this->user_list);
    31.     echo "<pre>\n";
    32.     }
    33. }
    34. $user=new UserManipulation();
    35. $user->GetUserInfo("vasya", "pupkin", "1234567890", "simpleuser");
    36. $user->GetUserInfo("petya", "jopkin", "1234567890", "admin");
    37. $user->GetUserInfo("misha", "pipiskin", "1234567890", "simpleuser");
    38. $user->GetUserInfo("lesha", "debilkin", "1234567890", "simpleuser");
    39. $user->GetUserInfo("mitya", "mozg", "1234567890", "simpleuser");
    40. $user->ShowUserInfoAll();
    41. ?>
    Почему в результате работы возвращает только последнюю запись массива а не весь массив???
     
  2. alexfer

    alexfer Активный пользователь

    С нами с:
    2 авг 2010
    Сообщения:
    239
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. $this->user_list[] =array(
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    надо
    $this->user_list[]=array(
     
  4. bogong

    bogong Активный пользователь

    С нами с:
    20 май 2010
    Сообщения:
    114
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Заработало :))) Спасибо ... :)))
     
  5. bogong

    bogong Активный пользователь

    С нами с:
    20 май 2010
    Сообщения:
    114
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Продолжение банкета ..., сказывается пятница ... Наверно ... Туплю ...
    PHP:
    1.  
    2. <?php
    3.  
    4. header("Content-type: text/html; charset=utf-8");
    5.  
    6. class User{
    7.    
    8.     public $user_name;
    9.     public $user_login;
    10.     public $user_password;
    11.     public $user_role;
    12.     public $user_id;
    13.     public $user_preference=array();
    14.     public $user_list=array();
    15.     static $count_admin;
    16.     static $count_user;
    17.    
    18.     # Функция добавления пользователя
    19.    function AddUser($n,$l,$p,$r){
    20.     $this->user_name=$n;
    21.     $this->user_login=$l;
    22.     $this->user_password=$p;
    23.     $this->user_role=$r;
    24.     $this->user_list[]=array(
    25.         $this->user_id=>array(
    26.         "Имя пользователя:"=>$this->user_name,
    27.         "Логин пользователя:"=>$this->user_login,
    28.         "Пароль пользователя:"=>$this->user_password,
    29.         "Роль пользователя:"=>$this->user_role));
    30.     }
    31.    
    32.     # Функция просмотра списка пользователей
    33.    function UserList(){
    34.     echo"<pre>\n";
    35.     print_r($this->user_list);
    36.     echo"</pre>\n";
    37.     foreach($this->user_list as $this->user_id=>$this->user_preference){
    38.         echo "Идентификатор пользователя: <b>".$this->user_id."</b><br>\n";
    39.         foreach($this->user_preference as $k=>$v){
    40.         echo $k.":<b> ".$v."</b><br>\n";
    41.         }
    42.     }
    43.     }
    44.    
    45.     # Функция выборки и подсчета пользователей по исполняемой роли
    46.    function UserListRoleCount(){
    47.    
    48.     }
    49. }
    50. $user=new User;
    51. $user->AddUser("vasya", "pupkin", "1234567890", "admin");
    52. $user->AddUser("vasya", "pupkin", "1234567890", "admin");
    53. $user->AddUser("vasya", "pupkin", "1234567890", "admin");
    54. $user->AddUser("vasya", "pupkin", "1234567890", "admin");
    55. $user->AddUser("vasya", "pupkin", "1234567890", "root");
    56. $user->UserList();
    57. //class User{
    58. //    static $count;
    59. //    function __construct() {
    60. //  ++self::$count;
    61. //    }
    62. //}
    63. ?>
    64.  
    Почему при переборе массива foreach-ом не выводит значения вложенного массива??? А pint_r-ом все в порядке ...
     
  6. alexfer

    alexfer Активный пользователь

    С нами с:
    2 авг 2010
    Сообщения:
    239
    Симпатии:
    0
    Потому, что надо правильно сформировать массив
    PHP:
    1.  
    2. <?php
    3. $this->user_list[$this->user_id] = array("Имя пользователя:"=>$this->user_name, ..
    Подучите основы
     
  7. bogong

    bogong Активный пользователь

    С нами с:
    20 май 2010
    Сообщения:
    114
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    :))) Благодарю ... Пошел наслаждаться конечно-недельным отсутствием мозга :)))