Чат PHP-разработчиков
Переменные в PHP

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

Всем привет. Сегодня разговор пойдёт о переменных в языке PHP. О том, что это такое и как с этим работать читайте ниже.

Начнём с определения.
Переменная – это какое-то значение, которому соответствует определённое имя.
Как в математике, x = 2 – переменная x равна двум. Здесь x – имя переменной, 2 – её значение.

В PHP переменные начинаются со знака "$".
Например: $x.

Чтобы присвоить переменной значение, используется знак "=", пример:

$x = 2;

Эта операция так и называется – присваивание переменной.

Помимо этого, переменную можно просто объявить, вот так:

$y;

Сейчас это выглядит довольно бессмысленно. Но позже мы обязательно рассмотрим, для чего это может применяться. Пока что просто запомните, что такое возможно, и это называется объявлением переменной.

Разумеется, переменной можно присвоить и результат целого выражения. Пример:

$sum = 5 + 10;

А затем использовать её:

echo $sum;

Также мы можем использовать переменные внутри других выражений:

$x = 2 + 3;
$y = ($x * 2) / ($x + 1);

echo $y;

Стоит обратить внимание, что имена переменных в PHP являются регистрозависимыми. То есть $x и $X – две разные переменные.

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

$subscriberEmail = ‘user@email.com’;
$catName = ‘Барсик’;
$dayOfWeek = ‘среда’;

Пример плохого имени:

$result = $b ** 2 - 4 * a * c; // более подходящее название - $discriminant

Кроме того, есть определённые правила, которые не влияют на работоспособность кода, но которых придерживаются все программисты на PHP. Это позволяет легко читать код других программистов, а это очень важно, так как над крупными проектами работает всегда несколько человек, и им обязательно приходится читать код друг друга. Повторюсь, эти правила чрезвычайно важны, потому что в будущем, когда Вы придёте работать на работу, Ваш код будут читать и изменять другие программисты, подумайте о них уже сейчас. Итак, перечислим эти правила.

  • Имя переменной должно состоять только из английских слов, и уж тем более только из букв английского алфавита.
    Никаких $imyaKota или тем более $имяКота, строго $catName
  • Имя переменной должно начинаться с маленькой буквы, а следующие слова, содержащиеся в её имени, должны начинаться с большой буквы. Этот стиль называется СamelCase, или "ВерблюжийРегистр"
    Никаких $catname или $CatName, только $catName.
Присоединяйтесь к нам в ВКонтакте и в Facebook, чтобы не пропустить новые уроки. А также вступайте в наш чат PHP-разработчиков в Telegram.
Домашнее задание
  • Присвойте переменным $a и $b значения 3 и 5 соответственно. С помощью третьей переменной $c поменяйте значения этих переменных (в $a будет 5, а в $b будет 3)
  • Проделайте тоже самое, но без использования третьей переменной, при условии что в качестве значений могут быть только целые числа
Читайте также
Комментарии (57)


morok.black
<?php
echo 'Решение без переменной.', '<br>';
echo 'Условия :', '<br>';
$a = 3;
$b = 5;
echo 'a = ', $a, '<br>';
echo 'b = ', $b, '<br>', '<br>';
$b = $a * $b;
echo 'Решение :', '<br>';
echo 'a = ', $a = $b / $a, '<br>';
echo 'b = ', $b = $b / $a, '<br>', '<br>', '<br>';
echo 'Решение с переменной.', '<br>';
echo 'Условия :', '<br>';
$c = 3;
$d = 5;
echo 'c = ', $c, '<br>';
echo 'd = ', $d, '<br>', '<br>';
$clipboard = $c;
echo 'Решение :', '<br>';
echo 'c = ', $c = $d, '<br>';
echo 'd = ', $d = $clipboard;
ivashkevich

Отлично! А ещё можно за счёт сложения/вычитания решить задачу:

$a = 3;
$b = 5;
$a = $a + $b; //a = 8
$b = $a - $b; //a = 8, b = 8-5 = 3
$a = $a - $b; //a = 8-3 = 5
Anril34
$a = 10;
$b = 5;
$b = $b - $a;
$a = $a + $b;
$b = $a - $b;
echo $a, $b;
ivashkevich

И так тоже можно =)

phenomg
$a = 2;
$b = 3;
echo "Решение без использования перменной: <br/>";

echo "a = ".$a."<br/>";
echo "b = ".$b."<br/>";

$b = $a + $b;
$a = $b - $a;
$b -= $a;

echo "a = ".$a."<br/>";
echo "b = ".$b."<br/>";

$a = 2;
$b = 3;

echo "Решение с использованием перменной: <br/>";

echo "a = ".$a."<br/>";
echo "b = ".$b."<br/>";

$с = $a;
$a = $b;
$b = $с;

echo "a = ".$a."<br/>";
echo "b = ".$b;
ivashkevich

Отличный вариант домашнего задания!

vityan97@gmail.com

Мне кажется здесь не нужны двойные ковычки, если код написан таким способом, читал что двойные ковычки работают медленнее на 30-40%, а если уж двойные ставить, то можно в них же и определять переменную. Или это не корректно?

ivashkevich

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

Простой пример:

$x = 2;
echo "x = $x"; //выведет x = 2
echo 'x = $x'; //выведет x = $x

Зависит от ситуации, если в строке нужно вывести переменную - то можно использовать двойные. Если же это просто строка - то только одинарные, чтобы не тратить ресурсы на поиск переменных в такой строке.

vityan97@gmail.com

Вот моё решение

echo "Замена а и b с помошью переменной с<br/>";
$a=3;
$b=5;
echo "a=$a b=$b<br/>";
$c=$a;
$a=$b;
$b=$c;
echo "a=$a b=$b<br/>";
echo "Замена a и b без помощи переменных<br>";
$a=3;
$b=5;
echo "a=$a b=$b<br>";
$a=$a*$b;
$b=$a/$b;
$a=$a/$b;
echo "a=$a b=$b";
ivashkevich

Отлично :)

SBTesla
<?php
echo 'Домашнее задание'.'<br>';
// задаем значения переменным
$a = 3;
$b = 5;
// выводим значения переменных
echo " значение переменной а:".$a.'<br>';
echo " значение переменной b:".$b.'<br>';
// изменяем значение переменных а и б
$c = $b - $a; // отнимаем 5- 3  в переменной с
$a = $c + $a;// прибавляем к переменной а 2
$b = $b - $c;// отнимаем из переменной 2
// выводим  сумму измененых переменых
echo 'значение переменной а изменилось на:'.$a.'<br>';
echo 'значение переменной б изменилось на:'.$b.'<br>';
serb2017
<?php
echo "Начальные значения";
$a=2;
$b=5;
echo '<br>','a=', $a , '     b=', $b ;
/*Решение*/
$a = $a * $b ;
$b = $a / $b ;
$a = $a / $b ;
echo '<br>' , "Конечные значения";
echo '<br>','a=', $a , '     b=', $b ;

На экране:
Начальные значения
a=2 b=5
Конечные значения
a=5 b=2

ivashkevich

Очень хорошо, этот вариант еще не предлагали)

markEvillive
<h1>Изменение значения переменных</h1>
      <?php
        $a = 3;
        $b = 5;
        echo "<h3>Исходные значения </h3>";
        echo "a = $a , <br>";
        echo "b = $b , <br> ";
        echo "<h3>Результат</h3>";
        $c = $a + $b;
        echo "c = $c <br>";
        $a = $c - $a;
        $b = $c - $b;
        echo "a = $a <br>";
        echo "b = $b";
      ?>
ivashkevich

Зачем что-то суммировать и вычитать? Можно просто временно положить в $c значение $a, в $a присвоить $b, в $b положить значение из $c.

Сложение и вычитание могут понадобиться для второй задачи, но не для первой. Это лишнее усложнение.

P.S. в HTML по-правильному после тега <h1> должен идти <h2>, а "внутри" уже <h3>. То есть должен соблюдаться порядок вложенности. Можете почитать об этом в уроке про заголовки.

Dasgonder
$a = 3;
$b = 5;
echo "a={$a} b={$b}\n";
$c = $a;
$a = $b;
$b = $c;
echo "a={$a} b={$b}";

Просто меняем местами, верно? Не вычисляем )

$a = 3;
$b = 5;
echo "a={$a} b={$b}\n";
[$a,$b] = [$b,$a];
echo "a={$a} b={$b}";
ivashkevich

Отлично, что сказать :)

baha

Я изучил д/з других пользователей и решил вот так:

$k = 3;
$m = 5;
echo 'k = ', $k, '<br>';
echo 'm = ', $m, '<br>';
$n = $k * $m;
echo 'k = ', $n / $k, '<br>';
echo 'm = ', $n / $m, '<br>';
echo '<br>';
ivashkevich

Ну вот, прекрасное решение!=)

Koala

Через переменную

        echo '<br>';
        $a = 3;
        $b = 5;
        $c = $a;
        $a = $b;
        $b = $c;
        echo $a ,"<br>", $b;

Без переменной

        echo '<br>';
        $a = 3;
        $b = 5;
        $a = $a + $b;
        $b = $a - $b;
        $a = $a - $b;
        echo $a ,"<br>", $b;

P.S: В начале каждого кода <br> делал одном файле :)

slasva
<?php
$a=3;$b=5;$c=$a+$b;$a=$c-3;$b=$c-5;echo $a;echo $b;echo '<br>';
$a=$b+2;$b=$a-2;echo $a;echo $b;
?>
ivashkevich
  1. Не надо всё в одну строчку.
  2. Код не будет работать, если подставить другие исходные данные.
nemo.dont@gmail.com

После того как выполнила, посмотрела, что прислали другие. Наверное, что-то я сделала не так, но все же пришлю свой вариант, чтобы вы побъяснили.

<?php
echo '№1. Решение с переменной', '<br>';
$a=3;
$b=5;
$c=2;
echo 'a=', $a+$c, '<br>';
echo 'b=', $b-$c, '<br><br>';

echo '№2. Решение без переменной', '<br>';

echo 'a=', $a+2, '<br>';
echo 'b=', $b-2, '<br>';
?>
ivashkevich

Смотрите. В начале мы имеем 2 переменные - $a и $b. Мы должны написать какой-то код, который поменяет значения в этих переменных местами. То есть должно получиться вот так:

<?php
$a = 5;
$b = 9;

// ... здесь нужно придумать что написать

echo $a; // выведет 9
echo $b; // выведет 5

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

nemo.dont@gmail.com

ага, думаю поняла )) я не думала, что переменной можно присвоить выражение, которое содержит ее же. попытка номер 2 ))

echo '№1. Решение с переменной', '<br>';
$a=3;
$b=5;

$c=$a;
$a=$b;
$b=$c;

echo $a, '<br>';
echo $b, '<br><br>';

echo '№2. Решение без переменной', '<br>';

$a=3;
$b=5;

$a=$a+$b;
$b=$a-$b;
$a=$a-$b;

echo $a, '<br>';
echo $b, '<br><br>';
ivashkevich

Ну вот, прекрасное решение! =)
Из замечаний - строки склеиваются с помощью символа "." (точка). И в некоторых местах можно было их вообще не разбивать:

echo '№1. Решение с переменной<br>';
Fox-24

Спасибо за урок:)

<?php
// Начальные значения переменных
$a = 3;
$b = 5;

// Вывод
echo "Пока что переменная А равняется $a, а переменная B равняется $b.<br>";

// Если мы хотим изменить переменную, то сделаем так:
$c = $a + $b;

$a = $c - $a;
$b = $c - $b;

echo "Теперь переменная А равняется $a, а переменная B равняется $b.";

//Если мы хотим изменить переменную без использования переменной С, то сделаем так:

$a = $b + $a;
$b = $a - $b;
$a = $a - $b;

echo "Теперь переменная А равняется $a, а переменная B равняется $b.";
Fox-24

В первом варианте конечно можно и так, но почему-то первое что хочется сделать это сложить или вычесть =))

// Если мы хотим изменить переменную, то сделаем так:
$c = $a;
$a = $b;
$b = $c;

echo "Теперь переменная А равняется $a, а переменная B равняется $b.";
ivashkevich

Отлично! Именно в таком варианте и ожидалось =)

dsokol-ok
<?php

echo 'Вариант с использованием переменной: <br>';

$a = 3;
$b = 5;
echo 'Входные данные: a = ', $a,', b = ', $b, ';<br>';

$c = $a;
$a = $b;
$b = $c;
echo 'Результат: a = ',$a, ', b = ',$b,';<br><br>';

echo 'Вариант без использования переменной: <br>';

$a = 3;
$b = 5;
echo 'Входные данные: a = ', $a,', b = ', $b, ';<br>';

$a = $a + $b;
$b = $a - $b;
$a = $a - $b;
echo 'Результат: a = ',$a, ', b = ',$b,';<br><br>';

echo 'Профит!';
vlad.holomev.03102005@mail.ru

А так можно?

$a=3;
$b=5;
$c=5;
$b=$b-$c;
$b=$a+$b;
$c=2;
$a=$a+$c;
ivashkevich

Что-то как-то сложно. Можно проще - смотрите другие решения.

paradise1983@icloud.com
<html>
<head>
    <title>Иван</title>
    </head>
    <body>
    <h1>Переменные в PHP</h1>
        <h2>Задание 1</h2>
        <p>
        <?php

        $a = 3;
        $b = 5;
        $c = $b;

        echo "a = " . $a . '<br/>';
        echo "b = " . $b . '<br/>';
        echo "a = " . $c . '<br/>';
        echo "b = " . $a . '<br/>';
        ?>
        </p>
                <h2>Задание 2</h2>
        <p>
        <?php

        $a = 3;
        $b = 5;

        echo "a = " . $a . '<br/>';
        echo "b = " . $b . '<br/>';
        echo "a = " . $b . '<br/>';
        echo "b = " . $a . '<br/>';
        ?>
        </p>
    </body>
</html>
ivashkevich

Речь была о другом - смотрите решения выше.

Ros
/*C переменной*/
$a=3;
$b=5;
$c = $a + $b;
$a=$c-$a;
$b=$c-$b;
echo "a=$a b=$b";
/*Без переменной*/
$a=3;
$b=5;
$a=($a+$b);
$b=($a-$b);
$a=($a-$b);
echo "<br>a=$a b=$b";
ivashkevich

Хорошо, но скобки - лишнее.

Apache79
<?php

echo 'Домашнее задание.',' <br>','<br>';
echo 'С дополнительной переменной:','<br>';
$a = 3;
$b = 5;
$c = $a + $b;// c = 8
echo 'a = ', $a,'<br>';
echo 'b = ', $b,'<br>';
echo 'c = ', $c,'<br>';
$a = $c - $a; // 8-3=5 a=5
$b = $c - $b; // 8-5=3 b=3
echo 'Новые значения:','<br>';
echo 'a = ', $a,'<br>';
echo 'b = ', $b,'<br>','<br>';
echo 'Без дополнительной переменной:','<br>';
$a = 3;
$b = 5;
echo 'a = ', $a,'<br>';
echo 'b = ', $b,'<br>';
$a = $a * $b;// 3 * 5=15 a=15
$b = $a / $b;// 15/5=3 b=3
$a = $a / $b;// 15/3=5 a=5
echo 'Новые значения:','<br>';
echo 'a = ', $a,'<br>';
echo 'b = ', $b,'<br>';
ivashkevich

А зачем в примере с дополнительной переменной что-то складывать и вычитать?

Kutkh

А как настроить вывод ошибок, как у вас, я имею ввиду визуальную составляющую?

ivashkevich

Это расширение xdebug. Настраивали в уроке про OpenServer.

Kutkh

ДЗ

// 1 вариант
$a = 3;
$b = 5;

$c = $a;
$a = $b;
$b = $c;

// 2 вариант
$a = 3;
$b = 5;

$a = $a*$b;
$b = $a/$b;
$a = $a/$b;
virtual2018
<?php
$a = 3;
$b = 5;
echo "Исходные данные для первой задачи a = ".$a." b = ".$b.'<br>';
$c = $a;
$a = $b;
$b = $c;
echo "Результат решения a = ".$a." b = ".$b.'<br>';
$a = 2;
$b = 7;
echo "Исходные данные для второй задачи a = ".$a." b = ".$b.'<br>';
$b = $a + $b;
$a = $b - $a;
$b = $b - $a;
echo "Результат решения a = ".$a." b = ".$b.'<br>';

echo "P.S: чужие решения рекомендую спрятать за спойлер";
ashfedor@gmail.com

Вот мое решение. Только у меня нотайс вылазит на последнем значении. Почему не пойму?

echo 'решение с перменной' .'<br>';
$a = 3;
$b = 5;
$s = $a + $b;
$b = $s - $b;
$a = $s - $a;
echo $b . "<br>" . $a;
echo '<br>';
echo 'решение без перменной' . '<br>';
$a = 3;
$b = 5;
$b = $a * $b;
echo '$a = ' . $a = $b / $a . '<br>';
echo '$b = ' . $b = $b / $a ;
ivashkevich

Потому что на предпоследней строке в $a присваиваете $a = $b / $a . '<br>'. И получается строка с <br> на конце, которую затем используют в арифметической операции. Отсюда и ошибка.
Чтобы этого избежать, можно взять выражение в скобки:

echo '$a = ' . ($a = $b / $a) . '<br>';
bibelman
<?php
// Задание 1
$a = 3;
$b = 5;
$c = $a; 
$a = $b;
$b = $c;

// Задание 2
$a = 3;
$b = 5;
$a = $a + $b; // $a = 3 + 5 = 8
$b = $a - $b; // $b = 8 - 5 = 3
$a = $a - $b; // $a = 8 - 3 = 5

?>
Bogdan

получилось вот так..

<?php

$a = 3;
$b = 5;
$c;

echo "перменная а = $a, переменная b = $b<hr>";

//$c = $a;
//$a = $b;
//$b = $c;
//echo "перменная а = $a, переменная b = $b<hr>";

$a += $b;
$b = $a - $b;
$a -= $b;
echo "перменная а = $a, переменная b = $b<hr>";

понравилось решение:

$a = 3;
$b = 5;
echo "a={$a} b={$b}\n";
[$a,$b] = [$b,$a];
echo "a={$a} b={$b}";
ivashkevich

Отлично! Да, решение изящное)

Bocha
<?php
echo 'Изменение двух переменных с помощью третьей переменной', '<br>','<br>';
echo 'Стартовые значения переменных:', '<br>','<br>';
$a=3;
$b=5;
echo 'Стартовые значения переменных:','<br>';
echo "А=$a",'<br>';
echo "B=$b",'<br>','<br>';
$c=$a;
$a=$b;
$b=$c;
echo 'Измененные значения переменных','<br>';
echo "А=$a",'<br>';
echo "B=$b",'<br>','<br>';
echo 'Изменение двух переменных без помощи третьей переменной', '<br>','<br>';
echo 'Стартовые значения переменных:', '<br>','<br>';
$a=3;
$b=5;
echo 'Стартовые значения переменных:','<br>';
echo "А=$a",'<br>';
echo "B=$b",'<br>','<br>';
$a=$b*$a/$a;
$b=$a*3/$b;
echo 'Измененные значения переменных','<br>';
echo "А=$a",'<br>';
echo "B=$b",'<br>','<br>';
?>
yushcov@bk.ru

По простому)

$a=3;
$b=5;
$c=$b-$a;
$a=$c+$a;
$b=$b-$c;

 echo "Переменная a: $a";
 echo "<Br>";
 echo "Переменная b: $b";
Популярное за сутки
Сейчас читают
Логические задачи с собеседований