PHP — операции с переменными

Что такое переменные в PHP


Как я и писал ранее переменная — это контейнер для ваших данных, какие бывают типы данных в PHP, мы с вами разобрали в предыдущей статье, единственное что я не писал там про анонимную функцию, как тип данных, но об этом еще говорить рано. В переменные вы можете поместить числа, строки, массивы, объекты и тд. Все что вы поместили в переменную, хранится в оперативной памяти, поместить в переменную данные, объемом превышающим размер оперативной памяти вашей машины невозможно, да и в принципе при адекватной разработке такого не случается. Наоборот, разрабатывая вашу программу, вы должны следовать принципу, что все должно быть написано просто, без сложностей и расходовать как можно меньше ресурсов вашей машины.

Work smarter — not harder!

Работай головой, а не руками, больше думай — меньше делай, перевести это можно по разному, но суть состоит в том, что нужно работать с умом, надолбать кучу кода — реально, а вот написать качественный код… для этого нужно сначала подумать. Даже доходит до того, что перед написанием очередной фичи ты ходишь, думаешь, продумываешь как она будет реализована, а только потом пишешь. При этом на написание уходит мало времени и строк кода, большую часть времени профессиональный программер думает головой.

Присвоение значения переменной

Перед тем как назвать переменную и присвоить ей значение ее нужно как-то назвать. Название переменной должно отображать суть того, что в нее поместили. Переменные в PHP записываются через символ «$» (доллар). Например переменная, которая содержит в себе имя человека будет называться $name, а переменная которая в себе содержит массив с данными $data. Пример кода ниже:

<?php
$name = "vasya";

$data = ["any", "data", "in", "this", "array"];

?>

Как вы уже заметили, присвоение значения переменной осуществляется через символ «=» (равно), это легко запомнить, в конце строки всегда ставится «;» (точка с запятой), это своего рода сигнал машине, что нужно перейти на новою строчку для дальнейшего выполнения скрипта.

Так же не стоит в именах использовать числа, старайтесь не лениться и пишите словами, так же имя переменной не может начинаться с числа $1 — не пишите так, это не работает.

Операции с переменными

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

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

  • Присвоение значения, определение переменной
  • Сложение, вычитание, умножение, деление чисел (integer, float)
  • Сложение строк (string)
  • Сравнение значений переменных (по значению, по значению и типу данных)
  • Уничтожение переменной, удаление из памяти (unset())
  • Вывод значения на экран, консоль, браузер (echo, print_r(), var_dump())

Присвоение значения переменной (определение переменной) в PHP

Мы уже выше рассматривали данный пример, код:

<?php 

$integer = 1;                   // integer 
$string  = "vasya";             // string 
$array   = [1, 2, 3];           // array 
$float   = 1.4;                 // float 
$object  = new DateTime("now"); // object, class 
$bool    = true;                // bool 

?>

Обратите внимание на выравнивание кода, код должен быть понятен и выровнен так, чтобы вы без труда могли увидеть малейшие отличия логических конструкций, к примеру равно нужно ставить под равно, комментарии (записанные после «//») тоже по возможности выровнять друг под другом, в общем код должен выглядеть так, как на примере выше.

Сложение, деление, вычитание и умножение чисел в PHP

<?php
// сложение чисел

$a = 1;
$b = 2;
$c = ($a + $b);

// деление чисел

$a = 10;
$b = 2;
$c = ($a / $b); 

// вычитание чисел

$a = 10;
$b = 5;
$c = ($a - $b);

// умножение чисел

$a = 10;
$b = 5;
$c = ($a * $b);
?>

Если посмотреть на пример кода, расположенный выше, то можно увидеть, что сложение чисел осужествляется через привычный нам знак «+» (плюс), вычитание через «-» (минус), деление через «/» (слеш), умножение через «*» (звездочка). Так же вы должны были заметить, что я заключил все арифметические операции в скобки, для наглядности и исключения при их модификации случаев наружения порядка вычислений.

Сложение строк

<?php
// сложение строк в PHP
$name   = "vasya";
$result = "my name is " . $name;

?>

Сложение строк в PHP осуществляется через точку, так же есть еще несколько вариантов добавления суффикса (фрагмента данных в конец строки), но это мы рассмотрим в практическом занятии, которое будет после этой статьи.

Сравнение переменных (по значению, по значению и типу данных)

<?php
// сравнение переменных по значению
$a = "1";
if ($a == 1)
    {
        echo "true";
    }
else
    {
        echo "false";
    }

// сравнение переменных по значению и по типу данных
$a = "1";
if ($a === 1)
    {
         echo "true";   
    }
else
    {
         echo "false";
    }
?>

Давайте внимательно посмотрим на пример, в первом случае (с двойным равно) при запуске скрипта мы получим вывод в консоль — true, хоть и единица не является string, а является integer, но значения то у нее с $a одинаковые. Во втором случае (с тройным равно) мы получим false, почему? Потому что хоть значения переменных и совпадают, но типы у них расходятся, «===» — тройное равно, производит сравнение как по типу данных, так и по значению.

Помните понятие «Shit in — shit out»? Именно об этом и идет речь, если вы у себя в коде не будете использовать жесткую типизацию, то рано или поздно налетите на расхождение типов и ваша программа сломается.

Уничтожение переменных, удаление из памяти

<?php
// удаление переменной из памяти, уничтожение
$a = 1;
unset($a);
?>

Мы сначала определили переменную $a и присвоили ей значение, до момента unset’a она существовала в памяти и мы могли производить с ней какие-либо операции, после unset’a ее не стало существовать. Это может вам помочь, когда ваш скрипт обрабатывает большие данные на машине и вам необходимо после выполнения операции с этими данными освободить память (если данные больше не нужны), так как каждая переменная хранится в памяти, пока процесс работает. В некоторых случаях unset может спасти.

Вывод значения на экран, консоль, браузер

<?php
// вывод string, float, integer, bool
$bool = false;
echo $bool;

$string = "hi";
echo $string;

$int = 1;
echo $int;

$float = 1.5;
echo $float;

// вывод на экран array, class (object)
$object = new DateTime("now");
print_r($object);
var_dump($object);

$array = [1, 2, 3, 4];
print_r($array);
var_dump($array);

?>

Вывод данных, которые PHP может преобразовать к строке (string, float, integer, bool, object — в котором есть магический метод __toString() — об этом позже…) производится оператором echo, так же вы можете для этих типов использовать var_dump() и print_r(), для вывода массивов и объектов (array, object) echo не используется, для этих типов используют print_r() и var_dump()

В чем отличие print_r() и var_dump()?

print_r()

print_r — Выводит удобочитаемую информацию о переменной

<?php
mixed print_r ( mixed $expression [, bool $return = false ] )
?>

print_r() выводит информацию о переменной в удобочитаемом виде.

print_r(), var_dump() и var_export() могут также показывать защищенные (protected) и закрытые (private) атрибуты объектов. Статические элементы класса не будут отображены.

Список параметров


expression Выражение для вывода на экран.

return Если вы хотите перехватить вывод print_r(), используйте параметр return. Если его значение равноTRUE, то print_r() вернет результат вывода вместо вывода в браузер (который производится по умолчанию).

Возвращаемые значения


Если в функцию передаются значения типов string, integer или float, будет напечатано само значение. Если передается массив array, значения будут напечатаны в формате, показывающем ключи и элементы массива. Аналогичный формат вывода используется для объектов.

Если параметр return установлен в TRUE, данная функция вернет строку (string). В противном случае возвращаемое значение будет равно TRUE.

var_dump()

var_dump — Выводит информацию о переменной

<?php
void var_dump ( mixed $expression [, mixed $... ] )
?>

Функция отображает структурированную информацию об одном или нескольких выражениях, включая их тип и значение. Массивы и объекты анализируются рекурсивно с разным отступом у значений для визуального отображения структуры.

Все общедоступные, закрытые и защищенные свойства объекта будут возвращены при выводе, если только объект не реализует метод __debugInfo() (добавлен в PHP 5.6.0).

Список параметров


expression Переменная, значение которой необходимо отобразить.

Возвращаемые значения


Эта функция не возвращает значения после выполнения.

В чем же разница?

var_dump() используют, когда нужно узнать подробную информацию о переменной, он вернет тип данных, размер данных и значение, удобно когда с виду строки одинаковые, но на конце есть перенос строки — один человек налетел на это и сказал: «у меня две одинаковые строки, не равны» — я долго смеялся, оказалось на конце одной из строк был символ переноса строки, который при выводе через echo не был виден в консоли. var_dump() как раз помог бы ему это увидеть. print_r() в отличии от var_dump() выводит лишь значение переменной, с небольшой информацией (касается массивов и объектов)

Практика

Следующая статья будет практическая, в ней мы создадим наш первый каталог (урок), в директории /home/learning, которую мы создали в одной из предыдущих статей. Там мы разберем все на деле, что написано в этой статье, запустим PHP скрипты и посмотрим что они выведут в консоль.

Подпишитесь на рассылку новых статей

Подпишитесь на рассылку свежих статей и присоединяйтесь к 5 остальным подписчикам.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *