масиви php

Масиви в php це, якщо висловитися коротко, кілька змінних, об'єднаних під одну "дах".

Іншими словами - це змінна з безліччю осередків.

Все просто - реалізується це, як варіант, за допомогою квадратних дужок []

масиви php

Що ми зробили? Ми створили масив $ user [] з п'ятьма осередками і привласнили їм різні значення.

Виникає питання - як нам звертайтеся до тієї чи іншої комірці?

Якщо вручну не поставити номери, пхп автоматично пронумерує осередки, починаючи з верху, з нуля.
Тобто наприклад, що б звернеться до верхньої осередку потрібно написати:

масиви php

Існує функція, яка вважає всі осередки масиву, напрмер якщо їх там 65 568, вважати їх звичайно буде великою проблемою. Для цього і існує функція count ()

масиви php

Ще одна зручна функція, яка виводить всі значення всіх осередків масиву print_r ()

масиви php

Результат в браузері буде виглядати так:

масиви php

Ми бачимо нумерацію наших осередків і їх значення. АЛЕ! Ми не бачимо якісь типи змінних у нас там лежать, правда? Також ми не бачимо кількість осередків. Ну п'ять то ми можемо порахувати, а якщо їх та тисячі?

На цей випадок у нас є чудова функція var_dump ()

Яка і кількість осередків виведе і їх типи.

масиви php

У браузері ми побачимо все, що нам потрібно!

масиви php

"А що буде якщо вручну пронумерувати комірки" - запитаєте Ви? Зробимо так "

масиви php

масиви php

Так відбувається, тому що пхп нумерує комірки, якщо частина не пронумерована, позиціями НАСТУПНОГО ЗА НАЙБІЛЬШОЮ!

Тобто він дивиться зверху вниз, ага, перша пронумерована, друга пронумерована, третя. немає, і він привласнює їй значення наступне за найбільшим, яке він вже прочитав. Найбільше було 11, значить третю він нумерує 12, так само і з 46, тому що 45 було найбільше, що він побачив перед непронумерованому осередком.

Масиви створювати можна і іншим способом (що є більш правильним) за допомогою функції array ()

Давайте створимо точно такий же масив цим способом

А пронумерувати комірки в цій ситуації можна дуже просто:

Виникає одна проблемма. Якщо осередків багато, то нам важко буде запам'ятати під яким номером, наприклад, пароль, а під яким е-мейл. Для цього ми пропишемо осередкам не номери, а дамо їм імена, тим самим ми створюємо асоціативний масив

масиви php

- це вкладений масив, тобто скажімо, в масиві п'ять осередків, а в свою чергу в одній з них (або в декількох або взагалі у всіх) лежить ще один масив (і так може бути до безкінечності).

Так як же вкласти одне в інше? Все як завжди на поверхні :-)

масиви php

Так ми вклали всередину нашої змінної $ name, яка сама перебуває всередині масиву $ user, ще один масив.

Просто замість значення однієї з осередків, як варіант, пишете масив. От і все. -)

Дуже часто нам потрібно виконати певний шматок коду кілька разів, але з невеликими змінами.

Погодьтеся, дуже зручно було б якось зациклити виконання однієї ділянки, ніж писати одне і те ж по кілька разів.

А вже якщо повторити код треба кілька тисяч разів, то без циклів ніяк не обійтися :-)

Дивіться слайд - там все начебто зрозуміло.

PRE - спочатку значення змінюється, потім передається далі на обробку.

POST - спочатку змінна віддається на обробку, а тільки потім змінюється.

масиви php

масиви php

Перші три рядки - це

Тобто спочатку відлуння виводить значення $ a рівне 1, а потім збільшує $ a на 1.

Потім коли луною $ a викликається повторно, вона вже має значення 2

Ну і другі три рядки - те ж саме, але навпаки.

масиви php

В частині А просто тупо виконується то що Ви там напишете. Як правило, там инициализируется лічильник циклу, але не обов'язково! Ну наприклад ми там оголошуємо якусь змінну і говоримо - "Ця змінна буде лічильником".

У частині В перевіряється якась умова (в принципі той же, якщо хочете, If). Перевіряється істинність цієї умови і якщо там true, php заходить в тіло циклу і виконує його, якщо false - вилітаємо з циклу.

Частина С точно так само як і в частині А просто виконується будь то вираз. Знову ж як правило там ми змінюємо наш лічильник - збільшуємо або зменшуємо значення.

Отже, як все це працює, ще раз:

Пхп заходить до частини A і робить все, що там написано. Сюди він потрапляє тільки один раз.

Потім заходить в частину В і питає там true чи ні. Якщо так, то виконуються всі команди циклу.

Потім пхп піднімається в частину С і теж виконує все що там написано.

Знову йде в частину В і знову питає true там або НЕ true.

Якщо true все повторюється знову - виконує тіло, йде в С, йде в В і питає знову.

І так триває поки в частині В не виявиться False. Після чого викидає з циклу.

Давайте виконаємо завдання, що б остаточно розібратися з циклом For.

Необхідно в стовпчик вивести всі числа від 1 до 50. Виконуємо:

масиви php

Спробуйте самі скласти подібний код і подивіться, що у Вас вийде :-)

Ось синтаксис циклу і приклад:

масиви php

Тут все те ж що в For тільки частина А ми виносимо наверх, за межі циклу, а частина С навпаки вставляємо всередину While

Зручно використовувати For коли ми точно знаємо з якого по яке значення буде крутитися цикл, а While коли точно не визначено скільки разів повторювати код в тілі.

Давайте складемо попередню задачу з використанням цього циклу:

масиви php

Ось і всі премудрості :-)

Бувають ситуації, коли нам не потрібно, що б цикл пройшов цілком. Тобто іноді потрібно, що б за певних умов ми вилетіли з тіла циклу.

Тому у нас є можливість гнучко впливати на роботу циклів і управляти ними :-)

Перший спосіб використання вже відомого з світча оператор break

масиви php

Тобто в браузер виведеться

Тому, що ми поставили умову, що при $ i == 5 ми вилітаємо з циклу командою break

Другий варіант це використання оператора continue

масиви php

Тут ми поставили умову, що б при $ i == 5 нас перекидало назад до умови циклу.

Відповідно коли php побачить відповідність $ i == 5 він перекине нас в частину В і цикл піде далі, не вивівши print $ i яка в даний момент дорівнювала п'яти. І в браузері буде:

12346789 і так далі - без п'ятірки.

Як поведе себе оператор break якщо у нас буде вкладений цикл? Наприклад є цикл while всередині котрого ще один цикл while

масиви php

У цій ситуації, коли пхп наткнеться на оператор break він викине нас з одного циклу - всередині якого був брейк

масиви php

Але залишиться в батьківському циклі - першому.

Таких вкладень може бути як завгодно багато. І щоб вказати php на скільки вкладених циклів нам необхідно вийти (скільки раз зробити брейк), ми пишемо через пробіл число, котре означає на скільки вкладень нам необхідно вийти, наприклад

масиви php

Тим самим виходимо з циклів!

Те ж саме з continue

АЛЕ. Не буває зле без добра, як то кажуть :-)

Число, яке визначає на скільки рівнів ми повинні вийти, має бути не більше кількості вкладених циклу. Тобто якщо у Вас один цикл вкладений в інший і все! число не може бути більше двох - інакше це призведе у ПОМИЛКУ.

У циклів For і While є один нюанс - і той і інший можуть взагалі ніколи не розпочатися, а нам НУ ДУЖЕ потрібно хоча б одне виконання циклу в незалежності від умови, наприклад

масиви php

Ці цикли ніколи не почнуть виконуватися, тому що спочатку $ i = 100 а в умови першого циклу (що б він почав виконуватися) має бути $ i

Схожі статті