Операторы, переменные в PHP

Операторы, переменные в PHP

Переменная в PHP, как и во многих других языках обозначается знаком $

Имя начинается с буквы или _ подчеркивания.

В нее можно присвоить знаком  =  как текст, так и цифры и выполнить математические расчеты.

Переменная в php регИстроЗависимая. Имя переменной можно давать и кириллицей, но при работе с некоторыми операторами могут быть баги, поэтому лучше писать латиницей.

Вывести переменную в строке можно при помощи конкатенации. Объявим переменную.

$per = 'Я переменная';
 
echo 'если вы впишите переменную здесь в одиночных кавычках, $per. <p> 
То она выведется как текст. <p>
 Если при помощи конкатенации то как ' . $per;
 

Если кавычки одинарные, то  php принимает все что внутри как текст. Если кавычки двойные, в этом случае php будет искать переменную, то есть тратить ресурс и время. Поэтому следует запомнить и ставить кавычки в зависимости от задачи. 
Выводим в двойных кавычках.

echo "если переменную выводим в тексте с двойными кавычками, $per . То она выведется как переменная";

Строки в переменных

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

echo ' вот " так \" все \ отображается  <p> ';
$kavichki = " вот \' так \тоже <p> ";

либо экранировать обратным слешом \ и для того чтобы отобразить обратный слеш \" его так же нужно экранировать  \\\" . При экранировании \" в одинарных кавычках обратный слеш так же будет виден. Обратный слеш экранирует все знаки которые задействованы в php.

echo ' вот \' так \\\' экранируем  <p> ';
$kavichki = " вот \" так \" тоже <p> "; 

Heredoc 

Еще один способ записать любой текст в php при помощи heredoc-синтаксиса. Записывается он тремя знаками меньше и идентификатором. Правила имен идентификатора как и у переменных.
echo <<<VOT
 После как указали идентификатор, сразу идет перенос строки и текст без пробела.  Идентификатор лучше записывать в верхнем регистре. В конце текста так же перенос строки и закрывающий тег идентификатора.
VOT;

$qw = <<<VOT
здесь текст любой " /''\ любые символы<p> переменные  $kavichki переносы  <br> и все такое 
VOT; 

Nowdoc — это то же самое для строк в одинарных кавычках, что и heredoc для строк в двойных кавычках. Идентификатор записывается в одинарных кавычках.

echo <<<'VOT'
Текст выводится так же как в одинарных 'кавычках'
VOT; 

Если вы используете синтаксис в конце страницы, то после закрывающего тега должна быть пустая строка или закрывающий тег php.

Эта конструкция идеальна для внедрения PHP-кода или других больших блоков текста без необходимости его экранирования. 

Арифметические операторы

Пример, переменой А добавляем 6, а  в Б добавляем 3 и если мы сразу в ней пропишем название, то результат все равно будет, так как оператор если первой видит цифру то сразу начинает считать.

Пример: 

$a = '6 Яблок';  
$b = '3  Лимона'; 
$g =  '5 Груш';

И считаем операторами результат. 

Сложение $a + $b; = 9

Вычитание $a — $b; = 3

Умножение $a * $b; = 18

Деление $a / $b; = 2

Отрицание-7 — $a + $g; = -8

echo (5 — - 6); // = 11

echo (-5 — 6); //  =  -11

echo (5 — 6); =  -1

Возведение в степень $a ** 2; = 36 

Деление по модулю  $a % 4; = 2

Тут всё просто. В нашем случае мы вычисляем остаток от деления a=6 на 4. Нацело не делится, целая часть – 1, и 2 в остатке.

$q = 5;
$p = $q % 3;
echo $p; 

Вычислим четное или не четное.
Для этого проверяем остаток от деления на 2 будет равен 0. Пример.

$q = 5.6;
  if ($q % 2 == 0) {
     echo' Чётное'; 
} else{
     echo' Нечётное'; } 

При делении по модулю операнды преобразуются в целые числа (int) (путём удаления дробной части) до начала операции.   

Вычислим модуль числа. Если число больше или равно нулю, то нужно вывести само это число, если меньше – заменить знак с минуса на плюс. Пример

$q = -5;
if ($q >= 0) {
     echo'Модуль числа: ' . $q;
 } else {     echo'Модуль числа: ' . -$q; } 

Что такое модуль числа

Чтобы нам сразу вывести всю информацию из переменной и результат, запишем это таким образом. Так как мы передаем данные из переменной, то естественно пишем в " двойных кавычках " в одинарных мы выводим ' текст '
Так как вначале мы выводим переменную в двойных кавычках, то у нас выводиться вся информация из переменной. Дальше мы даем оператору туже переменную для вычисления, разделяя от текстового вложения запятой. Оператор находит в переменной цифры и делает расчет. В конце мы поставили HTML тег перенос строки тоже отделив от переменной запятой. Вычисления с переменными  делаем вне текстового блока. 

echo "Завезли 02.02.2020, $a и $b, всего фруктов: " , $a + $b + $g, '<p>';
 

И получаем   ( Завезли 02.02.2020, 6 Яблок и 3 Лимона, всего фруктов: 14 )

 В php-8 вызовет ошибку из за числа и слов в переменной

Улучшенное сравнение строк и чисел в php-8. Теперь при сравнении с числовой строкой PHP 8 использует сравнение чисел. В противном случае число преобразуется в строку и используется сравнение строк.  

К примеру нам привезли еще 10 яблок и нам нужно добавить количество, но с новой датой, а предыдущая запись чтобы осталась.

Сделаем это оператором присваивания.

Добавить имеющиеся фрукты в новую переменную или просто обновив ее данные, о собственно прибавим уже к имеющийся.

$a = $a + 10;  или та же запись в сокращенном варианте записи  $a += 10;   
Или продали половину яблок    $a /= 2; 
В сокращенном варианте мы сначала делаем вычисления потом ставим знак ровно.
Однако в этом случае как вы видите в переменную А добавилось лишь число, а подпись яблок выводиться не будет.  Как добавить наименование  мы разберем чуть ниже и в уроках Пишем Вэб магазин.

Операторы имеют разный приоритет. Как, например, в математике: оператор умножения будет более приоритетным по сравнению с оператором сложения, если не установлен приоритет скобок.

$a + $b * 2; = 12 так как идет сначала умножение.

($a + $b) * 2; = 18 Так как сначала выполняем сложение в скобках.

Операторы сравнения

Результатом их работы всегда будет булево значение (true или false). знак = всегда идет последним.

Больше $a > $b; //  True — Истина. Да А больше Б 

Меньше $a < $b; // False — Ложь. Нет А не меньше Б

Ровно $a == $b; // False — Ложь

Не равно $a != $b;  и не равно $a <> $b; // True — Истина

Больше или равно $a >= $b;  // True — Истина так как А больше Б

Меньше или равно $a <= $b; // False — Ложь

Идентично равно и имеет тот же тип $a === $b; // False — Ложь так как тип тот же но не равно.

Не идентично, не равно или разный тип данных $a !== $b; = True — Истина так как А не равно Б

Spaceship

Спейшил оператор сравнения для сортировки, который появился в PHP7.  Сравнение идет если левая сторона больше, равно или меньше правой то вывести.

$a <=> $b;

Если $a > $b; вернёт 1
Если $a == $b; вернёт 0
Если $a < $b; вернёт -1

Давайте рассмотрим пример: 

Целые числа
echo 1 <=> 2; // -1 

 Floats 
echo 2.5 <=> 1.5; // 1

 Строки
echo «a» <=> «a»; // 0

 Массивы 
echo [1, 2, 4] <=> [1, 2, 3]; // 1

 Объекты
$a = (object) [«a» => «b»];
$b = (object) [«a» => «c»];
echo $a <=> $b; // -1

  сравниваются только значения
$a = (object) [«a» => «b»];
$b = (object) [«b» => «b»];
echo $a <=> $b; // 0 

Инкремент и декремент

Увеличивать и уменьшать целые числа на единицу. 

Для этого существуют специальные операторы инкремента и декремента.
Варианты могут быть самыми разными:

$i++   постфиксный инкремент, возвращает текущее значение $i, а затем увеличивает значение на единиц
$i--  постфиксный декремент, возвращает текущее значение $i, а затем уменьшает значение на единицу
++$i  префиксный инкремент, сначала увеличивает значение переменной $i на единицу, а затем возвращает результат
--$i  префиксный декремент, сначала уменьшает значение переменной $i на единицу, а затем возвращает результат

Давайте рассмотрим несколько простых примеров: 

Если мы в переменную которую удалили или с типом NULL, увеличим при помощи оператора инкремент, то у нас получиться. Пример 1

$a = NULL;
$a++;
var_dump($a); // int(1) 

Пример 2 

$a = 10;$b = 5;
$a += $b++; //   получим 15. Переменой а прибавили переменную  b, а уже после увеличили на единицу. 
var_dump($a);
$a += ++$b; // получим 22. Переменой а прибавили переменную b, увеличенной на единицу в предыдущим сложении и в этом, которая стала 7. 
var_dump($a);
$a += $b--; // получим 29 сначала прибавили, а которая равна 22, b которая равна 7,  а после b уменьшили на 1.
var_dump($a);
$c = $a + $b; // получаем 35 так как мы в переменную a=29, прибавили  b=6 так в переменной с, к а прибавили b которая была уменьшенная на 1
var_dump($c); 

Логические операторы 

Логические операторы используются для вычисления условий. Результатом такого оператора всегда будет истина или ложь. При этом операндами так же выступают истина или ложь.

Давайте перечислим их:
&& , and  — логическое И, и первый и второй операторы истина, тогда выполнит. 
||, or — логическое ИЛИ, если хотя бы один из операторов истина, тогда выполнит.
! – ОТРИЦАНИЕ, возвращает true, если операнд – false, и наоборот. Применяется если нужно инвертировать условие, зачастую это очень кстати.
xor – исключающее ИЛИ, вернёт true, только если один из операндов true, а другой – false 

$a= (6 == 6) || (4 <= 9); // true

Конкатенация, объединение.

Добавление в переменной еще одной переменной или текста и цифр, то есть их объединение в одно оператором конкатенации. Он представляет из себя точку . между и точка со знаком ровно .=

К примеру создадим переменную цитата, переменная имеет чувствительность к регистру и запишем в нее цитату.

$P_cit = 'Дебилы зарабатывают деньги. Разумные делают работу. ';
 

и выведем ее

echo $P_cit;
 

( Дебилы зарабатывают деньги. Разумные делают работу. )

Таким образом в любом месте мы сможем вывести любой текст указав лишь переменную.

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

echo $P_cit . 'а Павел';
 

и получаем 

( Дебилы зарабатывают деньги. Разумные делают работу. а Павел )

Таким же образом .= мы добавляем в переменную цифры.

 $c = 5;  $p = 10;

$c .= 7;   или  прибавляем к 10  $p += 3;  Что мы выше уже делали/

А теперь как вы уже догадались мы можем таким образом добавить наименование яблок к нашей обновленной переменной через конкатенацию .=
Идем в наш код и добавляем после обновления  переменой $a
добавляем конкатенацию  $a .= ' Яблок';  и получаем если вы прибавляли и делили.

(  Завезли 02.05.2020, 8 Яблок и 3 лимона, всего фруктов: 13)

Немножко геморойно, поэтому работа в PHP идет с файлами и базами данных. Но это лучше чем один HTML, так как здесь присутствует динамика.

Похожим способом можем присоединить переменные друг к другу, но без знака  =  просто точкой.  

echo $c . $p ;
 

 Получиться  5713.

Или уже с этими обновленными переменными работать. Пример:

echo $c + $p;
 

Выдаст нам 70, так как С стала 57, а Р стала 13.

Выводим переменную в слове

Еще один вариант конкатенации фигурные скобки в которых мы выводом {переменные}. Записывается в «двойных кавычка „ 

echo "Завези {$a} <br> продали {$b}";

При такой конкатенации не нужны не точки, не кавычки. 

Для того чтоб дописать к переменной буквы, к примеру изменить яблок на яблоки, выводим в фигурных скоб{$a}ках. Пример.

$a = '5 яблок'; // Главное чтобы в данных переменной и закрывающей кавычки не было пробела
$b = '3 лимона ';

echo "продали вместе с {$a}ами еще и $b"; 

(продали вместе с 5 яблоками еще и 3 лимона) 

Копирование переменной

Для того чтобы скопировать переменную мы просто их оператором присваивания = к  переменной слева присваиваем значение из правой переменной.

К примеру у нас есть переменная а с яблоками которые привозят в магазин, а мы хотим еще со своего сада продавать яблоки, просто копируем ее дав новое имя ya

$ya = $a;
 

и теперь мы можем работать с ссылкой ya не трогая а. У меня есть еще 5 яблок с моего сада которые я добавляю к тем в магазине.

$ya += 5; 
echo  " завезли $a, вместе с моими $ya яблок, и $b, всего фруктов " , $ya + $b ;
 

И получаем (завезли 8 Яблок, вместе с моими 13 яблок, и 3 Лимона, всего фруктов 16 )

Следует помнить что это всего лишь скопированная переменная, если мы уберем переменную а, то останется 5 наших яблок которые мы добавили к переменной ya своих. Работать можно с двумя переменными вместе и отдельно. 

Ссылка на переменную 

Ссылка на переменную создается знаком = & 

$ya =& $a;
 

В этом случае если мы сделаем ссылку и прибавим свои 5 яблок, то они прибавятся и к количеству в магазине. Проверяем

$ya =& $a;
echo  " завезли $a, вместе с моими $ya яблок, и $b, всего фруктов " , $a + $b ;
 

И если мы увеличиваем количество в магазине они автоматически прибавляются и к нашим яблокам. 
То есть таким образом мы создаем еще одно имя у переменной на которую ссылаемся и записывать можем, всего фруктов а + b , получим тот же результат что и выше с ya + b. Работаем с двумя именами переменной но одним результатом.

Переменные переменных

Переменную так же можно поместить в переменную добавив ей еще один знак $, двумя $$, тремя $$$ и так далее знаками. 

Создадим переменную m и добавим в нее номер магазина и название.

$m = 'f12';
 
$$m = 'Магазин фруктов";

выведем нашу переменную и добавленное в нее название и номер. 

echo  " В магазин   $f12  под номером  $m,  завезли $a яблок, вместе с моими $ya яблок, и $b, всего фруктов " , $ya + $b , "<p>";
 

  Как вы заметили написав значение переменной m, номер магазина мы получили данные из второй переменной $$, которые динамически подставляются в имя переменной. Да и с двойным $$ мы могли также получить название магазина. Поэкспериментируйте и так и с двойным $$.

Домашнее задание

Поменяйте местами значение у переменных $c=57 и $p=13, при помощи арифметического оператора. 

Проверить домашнее задание.

Продолжить просмотр за:
100 Лит
08:35
753
Set
RSS
Нет комментариев. Ваш будет первым!

Похожий контент

Операторы if, else выполнять при условии.Условные операторы if, else выполняют...
В PHP подключаем файлы операторами include и require.  В этом уроке мы научимс...
Оператор switch case так же как и IF является условным. С оператором switch&nb...
Функции function в phpФункции это участок кода function, где вы обрабатываете передаваем...