[редактировать]

Язык PHP: Основы

Основы / Математика / Строки и текст / Массивы и списки / Разные ошибки / О сложном



Что такое переменная?

Простое описание понятия "переменная", специально для начинающих.

Введение

Давайте представим, что у вас есть несколько шкатулок, в одной вы храните сладости, в другой деньги, а третья вообще пустая. Все шкатулки одинаковые и единственная возможность узнать что в них лежит, это посмотреть на наклейки с именами шкатулок - "сладости", "деньги", "разное".

Шкатулки это аналог переменных в программировании!

  • То что в них лежит, это Значение переменной
  • Наклейка на шкатулке это Имя переменной.

Вы всегда можете высыпать все из шкатулки сладости и положить туда что-то другое. Тоже самое и с переменными, вы можете менять их содержимое, т.е. Значение. Шкатулки можно очищать полностью, не заполняя их, тоже самое и с переменными в программировании. По имени шкатулки вы примерно понимаете - для чего нужна эта шкатулка, тоже самое вы можете понять по названиям переменных - их предназначение!


Переменные в PHP

Все переменные в php начинаются с символа доллар $, а далее следует имя переменной из англ букв, цифр и знака подчеркивания _.

Названия переменных никогда не начинаются с цифр! Это закон! Но вот содержать цифры в названии могут, только не первым символом.

$box 
// это просто одинокая переменная
// с именем `box`

Создавать переменные в php не нужно, достаточно просто присвоить переменной значение и php поймет, что переменную нужно создать если ее еще нет!

$box = 123;

123 здесь это целое число, значение переменной. Используем самый простой способ посмотреть значение переменной в develnext, это pre():

$box = 123;
pre($box);

Просто запомните, что pre показывает вам значение переменных такое, какое оно есть на самом деле без искажений.


Сложные примеры

Вообще переменной в php можно присвоить что угодно, не только число!

Значения переменных бывают разных типов, например - число, строка, десятичное число, пустота, массив, объект, булево (да/нет или правда/ложь).

Давайте попробуем присвоить строку:

$text = 'Привет мир';
// или
$text = "Привет мир";

Строки в php нужно заключать в кавычки - одинарные или двойные, вы можете сделать строку, которая содержит просто число.

Важно также знать о булевых значениях (boolean) - да/нет. Представьте что это по сути число, которое может быть только 0 или 1, 0 это ложь, а 1 это правда. Теперь представьте, что вместо 0 мы пишем false, а вместо 1 пишем true, что с английского переводится как ложь и правда.

$isEnemy = true;
$isPlayer = false;

Как работать с глобальными переменными?

Кратко о том, что такое глобальная переменная и как с ней работать в php.

Глобальная переменная - это такая переменная, которая будет доступна вам в любом участке кода, она имеет уникальное название в рамках всей программы.

Для работы с глобальными переменными в php есть 2 механизма.

Первый способ

Используйте посредника $GLOBALS, это массив всех глобальных переменных. Через него можно читать и писать глобальные переменные, например:

$GLOBALS['myVar'] = 'Hi, World';

alert($GLOBALS['myVar']);

Второй способ

Используйте ключевое слово global, его надо использовать как при записи, так и при чтении глобальной переменной, т.к. всегда, когда вы хотите использовать глобальную переменную, вот так:

global $myVar;
$myVar = 'Hi, World';

При чтении:

global $myVar;
alert($myVar);

Как реализовать условия в коде?

Описание операторов для условий - if, else, elseif и switch.

В php за условия отвечает оператор с ключевым словом if, внутри него заключается условие. Например так:

if ($this->edit->text == "Hello") {
     alert('Hello, Friend!');
}

Здесь код, который покажет сообщение, если ввести текст Hello.

Обратите внимание на двойное равно в условии! В условии на равенство можно проверить только через двойное равно! Это очень важно в php, иначе ваша проверка не будет работать.

Если вы хотите выполнить код, который возникнет в альтернативной ситуации, т.е. "иначе" используйте ключевое слово else, например так:

if ($this->edit->text == "Hello") {
     alert('Hello, Friend!');
} else {
     alert('Goodbye');
}

В этом случае если ввести какое-нибудь другое слово, не Hello, программа выведет сообщение Goodbye.

Различные способы сравнения

  1. Равно или не равно

Используйте == для равно, а для не равно !=, например:

if ($a != $b) { // если $a не равно $b
   // ...
}
  1. Больше или меньше

Для сравнения чисел можно использовать операторы больше > и меньше < как в математике:

if ($a > $b) { // если $a больше $b
   // ...
}
  1. Отрицание условия

Используйте оператор отрицания ! для этого и скобки:

if (!($a == $b)) { // если $a не равно $b

}

Как реализовать цикл и повторное выполнение в коде?

Что такое цикл, о циклах for, foreach, while и do.

Циклы в php это способ выполнить один и тот же код несколько раз, при этом сам код дублировать не нужно. Есть несколько видов циклов, есть простые, есть более функциональные.

Простой цикл

Для начала, рассмотрим ситуацию, у вас есть код, который надо повторить 3 раза. Это можно сделать циклом for:

for ($i = 0; $i < 3; $i = $i + 1) {
    echo "Привет Мир!\n";
}

Данный пример выведет 3 раза сообщение Привет Мир в окно сборки вашего проекта в develnext.
\n - это специальное сочетание символов, которое обозначает переход на новую строку, просто запомните это.

В цикле используется переменная $i, это как счетчик, который считает, сколько раз мы выполнили код. Мы определяем правила работы нашего счетчика $i:

  1. $i = 0 - так мы задаем начальное значение счетчика
  2. $i < 3 - а здесь проверяем, счетчик еще меньше трех? если да то продолжаем повторять, если нет заканчиваем.
  3. $i = $i + 1 - а так мы увеличиваем на счетчик каждый повтор.

Повторы в циклах программисты называют часто словом Итерация!

На самом деле в php выражение $i = $i + 1 можно заменить более коротким, неудобно писать постоянно такие длинные выражение, поэтому счетчик увеличивать на 1 можно так $i++:

for ($i = 0; $i < 3; $i++) {
    echo "Привет Мир!\n";
}

Вместо $i++ в php можно использовать и другое выражение $i += 1, это одно и тоже.

Примитивные циклы

К ним мы относим такие циклы, который повторяют выполнение вашего кода до выполнения определенного условия, обычно в них нет никаких счетчиков, это цикл while:

while ($this->button->visible) {
    echo "Кнопка видима...\n";
    sleep(1);
}

Здесь пока свойство кнопки visible будет равно true цикл будет повторяться.

! Осторожно, такой код будет вызывать лаги и зависания вашей программы, если вы его не поместите в поток или в фоновое выполнение (см. модульный компонент скрипт).

Есть вторая версия этого цикла, все тоже самое, только условие проверяется не сверху, а снизу:

do {
    echo "Кнопка видима...\n";
    sleep(1);
} while ($this->button->visible);

В данном цикле 1 повтор будет выполнен всегда, т.к. условие проверяется только в конце. Но иногда такие циклы удобны.