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

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

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

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

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

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

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

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

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

Выводим в двойных кавычках.

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

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

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

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

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

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

Ссылки на сайт в php

Для закрепления работы со строками в переменных и командах, разберем разные варианты создания ссылок.

Адрес ссылки записывается в кавычках, поэтому для простого указания ссылки в php, нужно записать адрес и отобразить, в разных кавычках. Пример

 
echo '<a href="http://socport.ru"> Ссылка на сайт '; // адрес URL в двойных кавычках
 

Запишем ссылку и название в переменную. 

 
$silka = 'socport.ru'; // записали адрес
 
 
$text = ' Ссылка на сайт '; // записали название ссылки
 

 Так в двойных кавычках мы можем вывести и переменные, и одинарные кавычки. Пример

 
echo "<a href='http://$silka'> $text "; // в одинарных URL
 

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

 
$port = '<a href="http://';  // открыли ссылку двойными кавычками
 
 
$silka = "socport.ru\">"; // закрыли адрес двойными кавычками
 
 
$text = ' Перейти на сайт ';  // тест ссылки
 
 
echo "<p> $port$silka $text </a> <p>";  // отобразили ссылку на сайт 

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

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

Heredoc 

Еще один способ записать любой текст в php при помощи heredoc-синтаксиса. Записывается он тремя знаками меньше и идентификатором. Правила имен идентификатора как и у переменных, а вот после имени не должно быть пробела, а сразу перенос строки.

 
echo <<<VOT
 
 
 После как указали идентификатор, сразу идет перенос строки и текст без пробела.  Идентификатор лучше записывать в верхнем регистре. В конце текста так же перенос строки и закрывающий тег идентификатора.
 
 
VOT;
 
 
$qw = <<<VOT
 
 
здесь текст любой " /''\ любые символы<p> переменные  $kavichki переносы  <br> и все такоеVOT;
&nbsp;

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.

Ссылки с конкатенацией

$silka = 'socport.ru';   // записали адрес
$text = ' Ссылка на сайт '; // записали название ссылки
echo '<a href="http://' . $silka . '">' . $text . '</a><p>'; // вывели
 

Так как мы выводим в одинарных кавычках, мы адрес берем в двойные кавычки и переменную записываем с конкатенацией. Поэтому весь текст и двойные кавычки берем в одинарные. Если же взять URL в одинарных кавычках, то записать ее гораздо проще. Так как в двойных кавычках мы можем вывести и переменные, и одинарные кавычки, что мы и делали выше. Здесь для примера конкатенации. 

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

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

 
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 ;
 

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

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

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

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

 
$ya =& $a;
 

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

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

Здесь получаем уже одинаковое число яблок, так как мы ссылаемся на $ya.

( завезли 10, вместе с моими 10 яблок, и 3 лимона, всего фруктов 13 )  

И если мы увеличиваем количество в магазине они автоматически прибавляются и к нашим яблокам. 

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

Ссылка на переменную которая не ссылка, а ссылка на данные в переменной.

Удалим переменную а, и видим что, удалилась переменная, а данные из нее остались в переменной $ya, которая ссылается на переменную а.

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

 
unset ($a);
 

( завезли (тут a), вместе с моими 10 яблок, и 3 лимона, всего фруктов 13 )

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

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

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

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

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

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

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

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

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

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

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

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

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