Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381

Как устроены массивы

17.04.2012, 17:15. Показов 2060. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрасте!
Прочитал на сайте про $_SERVER "... в него PHP-интерпретатор помещает переменные, полученные от сервера".
Когда я написал print_r($_SERVER), то увидел инфу типа Array ( [HTTP_USER_AGENT] => Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62 и т.п.

А какой именно элемент этой строки является переменной, полученной от сервера: [HTTP_USER_AGENT] или => Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62[/I] ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.04.2012, 17:15
Ответы с готовыми решениями:

Как устроены чаты?
Всем привет. Я раньше никогда не висел на чатах, а тут случайно попал, мне стало интересно как они работают, неужели аякс каждые...

Как устроены события?
Привет! Можете, пожалуйста, рассказать про то, как устроены события, как происходит сам процесс объявления и обработки события в Visual...

Как устроены игры?
Есть ли книга или руководство на русском, в котором объясняется как устроены компьютерные игры? Я подразумеваю абсолютно всё: начиная с...

15
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
17.04.2012, 17:21
массив состоит из парных элементов - ключ и значение , [HTTP_USER_AGENT] - ключ , Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62 - значение .
1
 Аватар для shafl
258 / 147 / 37
Регистрация: 24.01.2011
Сообщений: 427
17.04.2012, 17:24
это ассоциативный массив [HTTP_USER_AGENT] - это ключ, "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62" - это значение элемента с ключом (или индексом) "[HTTP_USER_AGENT] "
1
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
17.04.2012, 18:56
залезь лучше в phpinfo(); больше инфы полезной там начитаешся
1
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381
18.04.2012, 10:11  [ТС]
crautcher, это получается, что я мог бы у себя в блокнотике написать
$x[HTTP_USER_AGENT] = Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Да?

Значит ли это, что сервер создает переменные точно так же, как и пользователь?
Т.е. когда сервер видит команду print_r($_SERVER), то он пишет себе в блокнот:
$x[HTTP_USER_AGENT] = Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62[/I]
$y[CHARSET] = windows-1251
$z[CHARSET_DETERMINED_BY] = UserAgent

а потом эту свою писанину пересылаает клиенту, а тот - выводит на экран пользователю?

и т.д.

Прошу прощения за, наверное, глупый вопрос.
Так уж исторически сложилось, что, чем подробнее объяснение, тем у меня больше шансов понять его.

Добавлено через 1 минуту
Цитата Сообщение от Egoist0 Посмотреть сообщение
залезь лучше в phpinfo(); больше инфы полезной там начитаешся
Мне не нужна та инфа. Я просто пытаюсь понять, как это все работает.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
18.04.2012, 10:28
Цитата Сообщение от EK Посмотреть сообщение
crautcher, это получается, что я мог бы у себя в блокнотике написать
$x[HTTP_USER_AGENT] = Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Да?
ну не совсем так ..
PHP
1
2
3
4
<?
$x = array();
#объявили что $х у нас массив
$x['HTTP_USER_AGENT'] = 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62';
Цитата Сообщение от EK Посмотреть сообщение
Т.е. когда сервер видит команду print_r($_SERVER), то он пишет себе в блокнот:
в какой блокнот ?) Этож сервер ,на нем хранятся переменные , когда ты пишешь вышенаписанный код ты говоришь серверу чтоб он создал массив , в данном случае он сам его создаёт.
1
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381
18.04.2012, 10:44  [ТС]
PHP
1
2
3
$x = array();
#объявили что $х у нас массив
$x['HTTP_USER_AGENT'] = 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62';
А обязательно ли указывать $x = array()? Нельзя ли сразу написать $x['HTTP_USER_AGENT'] = 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62'; ?
Ведь квадратные скобки уже говорят от том, что $x - массив.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
18.04.2012, 10:55
Цитата Сообщение от EK Посмотреть сообщение
А обязательно ли указывать $x = array()?
цитата из php.net

PHP
1
2
3
4
$arr[key] = value;
$arr[] = value;
// key может быть integer или string
// value может быть любым значением любого типа
Если массив $arr еще не существует, он будет создан. Таким образом, это еще один способ определить массив array. Однако такой способ применять не рекомендуется, так как если переменная $arr уже содержит некоторое значение (например, значение типа string из переменной запроса), то это значение останется на месте и [] может на самом деле означать доступ к символу в строке. Лучше инициализировать переменную путем явного присваивания значения.
1
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
18.04.2012, 18:01
если ты хочешь понять что такое массив так вот представь себе ящик, в котором лежит много других вещей и забрать данные можно по ключам которые ты указываешь если у тебя не числовой массив а ассоциативный то его можно перебрать через foreach а иначе через while или for
так вот представь что масив это та же переменая которая имметь просто дополнительный параметр []
допустим вот смотри есть две переменые и один массив
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$phone='Apple';
$auto='BMW';
//вот так можно создавать масивы
$array=array('BMW','apple');
$array['auto']='BMW';
$array['phone']='apple';
//выводим через переменые
print $phone;
print $auto;
//выводим через массив
print $array[0];//BMW
print $array[1];//apple
print $array['auto'];//bmw
print $array['phone'];//apple
//сейчас у нас 4 елемента в массиве, почему 4 потомучто я создал массив через array(); и так же создал их последовательно
так же в самом массиве можно делать ключи ассоциативные
$array=array('auto'=>'BMW','phone'=>'apple');
понятно? или какой именно момент не ясен?
0
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381
18.04.2012, 18:38  [ТС]
Egoist0, что такое массив, я знаю.
Меня интересует другое.
Например, вот прочитал "$_REQUEST содержит данные переменных $_GET, $_POST и $_COOKIE".
$_GET, $_POST и $_COOKIE это переменные или массивы?
Если это - массивы, то какие переменные у массива $_POST?

И, кстати, какие массивы называется суперглобальными?
0
 Аватар для Dartk
48 / 50 / 4
Регистрация: 15.03.2009
Сообщений: 146
18.04.2012, 20:52
Цитата Сообщение от EK Посмотреть сообщение
$_GET, $_POST и $_COOKIE это переменные или массивы?
Это массивы.

Цитата Сообщение от EK Посмотреть сообщение
Если это - массивы, то какие переменные у массива $_POST?
Массив — это структура, которая может содержать любые данные.

Цитата Сообщение от EK Посмотреть сообщение
И, кстати, какие массивы называется суперглобальными?
Те которые вы указали выше. Почти все суперглобальные массивы наполняются интерпретатором при взаимодействии его с веб-сервером.
1
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
18.04.2012, 21:02
гет пост и куки это масивы, гет и пост это то что ты получаешь от формы отправленой, кука это то что ты создаешь пользывателю, суперглобальный масив это $_SERVER который можно юзать где угодно и как угодно не лезь пока в куки если не знаешь что такое гет и пост забудь сейчас про куки и сесии
1
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381
19.04.2012, 14:05  [ТС]
Dartk, я немного другое хотел спросить.
Почему эти массивы называют суперглобальными?
Суперглобальные массивы это те, которые формирует не пользователь, а сервер?
Кстаи, Вы написали: "ПОЧТИ все суперглобальные массивы наполняются интерпретатором при взаимодействии его с веб-сервером".
А какие не наполняются?

Egoist0, про куки и сессии я знаю, но в самых общих чертах
Когда мы гуляем по сайту, то комп отслеживает наше перемещение, вычисляет наш IP-адрес, операционку и все это пишет в куки.
А на стороне сервака пишется сессия с точно такой же инфой.
А когда мы уходим с сайта - сессия закрывается.
Правильно?

Кстати, а можно создать куки с помощью функции fopen('cookie.txt', 'a+')?
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
19.04.2012, 14:16
Цитата Сообщение от EK Посмотреть сообщение
А какие не наполняются?
Все суперглобальные наполняются интерпретатором.
Цитата Сообщение от EK Посмотреть сообщение
Кстати, а можно создать куки с помощью функции fopen('cookie.txt', 'a+')?
Куки - нет. Вы же не можете редактировать файлы на компе посетителя. А вот сой алгоритм сессии вы можете придумать.
0
 Аватар для Dartk
48 / 50 / 4
Регистрация: 15.03.2009
Сообщений: 146
19.04.2012, 15:20
Вообще это не массивы, а переменные, их так называют лишь потому, что все суперглобальные переменные являются массивами.

http://php.net/manual/ru/langu... lobals.php

Цитата Сообщение от EK Посмотреть сообщение
Кстаи, Вы написали: "ПОЧТИ все суперглобальные массивы наполняются интерпретатором при взаимодействии его с веб-сервером".
Как можете видеть, есть ещё другие глобальные переменные $argc, $argc и т.д. Они наполняются интерпретатором при взаимодействии с командной строкой.
0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
19.04.2012, 18:18
ек почитай лучше литературу чем тут ждать ответа,
кука так же как и сесия сама по себе не создастся пока ты не дашь такое условие, кука существует без сесии и на оборот, просто сесия это то что хранится на сервере в файле, ты можешь отследить её с помощью её ИД каждому пользователю создается своя сесия и записывать эту сесию пользователю в куки после чего проверять куки с сесией и узнавать это тодже пользователь или нет, но сесия существует всего 20-24 минуты где-то так, куки используют для запоминание какой-то инфы пользователя, тоже самое и сесия, пример допустим с тестами там используется кука которая записывает твои ответы после чего выводит их, реально почитай лучше про массивы в инете
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2012, 18:18
Помогаю со студенческими работами здесь

Как устроены проекты VS
Подскажите плиз, как организована прога в VS? И определения что такое solution, project и тд? Как нужно располагать классы по файлам и...

Как устроены оси в Unity?
но при этом Так же по оси х возрастает впрво, проверил( персонаж движется вправо - х увеличивается).Как устроены оси ?

Как устроены словари dict?
Добрый день. Учу питон и столкнулся с такой особенностью: d={'a': '123', 'b': 'qwe', 'c': 'asdvsdf', '2': '123123'} print d ...

Как у вас двумерные вектора устроены?
Вектор представляет собой последовательность объектов с динамическим размером, которая обеспечивает произвольный доступ к массиву operator....

Как устроены аудиопроигрыватели,видеопроигрыватели?(т.е программы)
Видел код фотки,куча цифр со странными числами в 16-тиричной системе. Как это всё устроено?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru