Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Возникли проблемы с многомерными массивами в классе.
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Возникли проблемы с многомерными массивами в классе.

Страниц (1): [1]
 

1. Dmitriy8787 - 01 Февраля, 2015 - 18:50:36 - перейти к сообщению
Здравствуйте. Пытаюсь реализовать класс с многомерными массивами ничего не получеться.
PHP:
скопировать код в буфер обмена
  1.  
  2. class Localisation
  3. {
  4. public $key=array(array());
  5. function setKeys()
  6.   {
  7.     //Поля регистрации
  8.     $Key[0][0]="Введтие логин ";
  9.     $Key[1][0]="Enter login";
  10.     $Key[0][1]="Введтие пароль ";
  11.     $Key[1][1]="Enter password";
  12.     $Key[0][2]="Повторите пароль";
  13.     $Key[1][2]="Repeat password";
  14.    
  15.     $Key[0][3]="Введите email";
  16.     $Key[1][3]="Enter email";
  17.     $Key[0][4]="Введите телефон";
  18.     $Key[1][4]="Enter mobile";
  19.     $Key[0][5]="Введите фамилию";
  20.     $Key[1][5]="Enter surname";
  21.     $Key[0][6]="Введите имя";
  22.     $Key[1][6]="Enter name";
  23.     $Key[0][7]="Введите отчество";
  24.     $Key[1][7]="Enter Patronymic";
  25. }  
  26. }  
  27.  

Как вызвать конкретный элемент, например $Key[0][0];
2. hrushachka - 01 Февраля, 2015 - 19:44:56 - перейти к сообщению
Почитайте раздел классы и объекты
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class Localisation
  3. {
  4. public $Key=array();
  5.     //Поля регистрации
  6. function __construct()
  7.         {
  8.         $this->Key[0][0]="Введтие логин ";
  9.     $this->Key[1][0]="Enter login";
  10.     $this->Key[0][1]="Введтие пароль ";
  11.     $this->Key[1][1]="Enter password";
  12.     $this->Key[0][2]="Повторите пароль";
  13.     $this->Key[1][2]="Repeat password";
  14.    
  15.     $this->Key[0][3]="Введите email";
  16.     $this->Key[1][3]="Enter email";
  17.     $this->Key[0][4]="Введите телефон";
  18.     $this->Key[1][4]="Enter mobile";
  19.     $this->Key[0][5]="Введите фамилию";
  20.     $this->Key[1][5]="Enter surname";
  21.     $this->Key[0][6]="Введите имя";
  22.     $this->Key[1][6]="Enter name";
  23.     $this->Key[0][7]="Введите отчество";
  24.     $this->Key[1][7]="Enter Patronymic";
  25.         }
  26. }
  27. $a = new Localisation();
  28. echo $a->Key[1][1];
  29. ?>
3. Dmitriy8787 - 01 Февраля, 2015 - 22:28:02 - перейти к сообщению
Сайт работает, но строки не выводит!!!
4. GoDr - 02 Февраля, 2015 - 08:04:29 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. .......
  2.  
  3. public function getKeys($lang, $mes){
  4.     echo $Key[$lang][$mes];
  5. }
  6.  
  7. .......
  8.  
  9. $a = new Localisation();
  10. $a->Key[1][1];
5. Sail - 02 Февраля, 2015 - 09:04:14 - перейти к сообщению
Dmitriy8787, логичнее, однако, таким образом структурировать массив:
PHP:
скопировать код в буфер обмена
  1. $Key[0][0]="Введтие логин";
  2. $Key[0][1]="Enter login";
  3. /* или, другими словами: */
  4. $Key[0] = array("Введтие логин", "Enter login");
  5. /* или ещё: */
  6. $Key[0] = array('ru' => "Введтие логин", 'en' => "Enter login");
  7. /* ну, или: */
  8. $Key[0]['ru']="Введтие логин";
  9. $Key[0]['en']="Enter login";

То есть, первый индекс - вид запроса (логин, e-mail, пароль и прочая...), второй - локализованная строка.
(Добавление)
Хотя, конечно, может и нет Улыбка
6. GoDr - 02 Февраля, 2015 - 09:31:20 - перейти к сообщению
я бы вообще по другому сделал
PHP:
скопировать код в буфер обмена
  1. $Key['ru'][0]="Введтие логин";
  2. $Key['en'][1]="Enter login";

 

Powered by ExBB FM 1.0 RC1