Как в php правильно присвоить переменной строку
Перейти к содержимому

Как в php правильно присвоить переменной строку

  • автор:

Переменные

Одна из вещей, которые делают программы — это работа с числами. Если ты читал предыдущий урок, то наверняка запомнил команду echo , которая печатает текст и числа. И наверняка ты помнишь, что в PHP есть + , — , * , / (который ты не перепутаешь с обратным слешем «\»), % (который обозначает деление с остатком), а дробные числа пишутся через точку.

Переменные

Когда выполняется код, нам надо где-то хранить промежуточные результаты и другие данные. Для этого в программировании используются . Переменная — это такая штука, в которую можно сохранить какое-то число или строку. У каждой переменной есть имя, и она обозначается конструкцией вроде $daysPassed (в начале всегда ставится знак доллара). Название (daysPassed — «прошлоДней») придумывает программист (это ты). Чтобы сохранить значение в переменной, используется оператор = :

Надеюсь, ты еще помнишь, что после каждой инструкции ставится точка с запятой?

Эта команда создает переменную $daysPassed и кладет в нее число 7. Теперь ты можешь, например, вывести это значение с помощью echo:

echo $daysPassed; → напечатает 7

Переменную можно вставить внутрь строки (если она в двойных кавычках, а не в одинарных), чтобы вывести поясняющий текст:

echo «Прошло дней: $daysPassed»; → выведет Прошло дней: 7

Также, в переменной можно сохранить (, говорят программисты) строку $name = «Ivan»; или результат вычисления какого-то выражения: $balance = 1000 + 1000; .

Позднее эту переменную можно использовать в каком-то выражении или вывести с помощью echo: echo $balance; .

Не знаешь английский и не можешь придумать имя переменной? Воспользуйся сервисом Яндекс.словари или Google translate, только не пиши по-русски, над тобой же смеяться будут.

Имена переменных могут состоять из латинских букв a-z, A-Z , цифр 0-9 и знака подчеркивания _ . Хоть знак подчеркивания и разрешено использовать в имени, это не рекомендуется. Имена принято начинать с маленькой буквы, а если оно состоит из нескольких слов, то эти слова, кроме первого, начинаются с большой буквы (это называется ):

Имена переменных

Важно! Регистр букв в имени переменной (большая или маленькая) имеет значение! $a и $A — это 2 разных переменных (причем вторая еще и названа плохо, имя должно начинаться с маленькой буквы).

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

Задачка

W2. Допиши программу, переводящую доллары в рубли, чтобы она работала правильно. Заготовку можешь взять по ссылке http://ideone.com/CsCOBV или http://paste2.org/pE927NmC

Задачка на перевод рублей в доллары Создание переменных

Переменные и операции с ними

Переменные можно использовать в выражениях и складывать, умножать, делить, и т.д. Для того, чтобы увеличить значение в переменной на 5, можно написать $a = $a + 5; (мы прибавляем 5 к тому, что ранее хранилось в переменной и сохраняем результат в нее же), но для таких целей есть более короткая форма записи: $a += 5; . Чтобы увеличить переменную на 1, можно писать еще короче: $a++; — делает то же самое, что и $a += 1; .

Операторы и сокращенная форма записи

Хитрости и уточнения

Эта информация только для тех, кто хочет знать больше необходимого минимума и изучать ее необязательно (хотя и полезно для расширения кругозора).

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

или, если убрать скобки, $a = $b = $c = 1;

Сначала выполнится действие $c = 1 , которое присвоит $c значение 1 и вернет это значение. Возвращенное значение присвоится $b , а затем и $a . Таким образом, во всех 3 переменных окажется единица.

Операторы += , -= и подобные возвращают увеличенное/уменьшенное значение. А вот с оператором ++ ситуация сложнее. Его можно записать перед переменной ++$i () и после $i++ (). В первом случае сначала увеличивается переменная, и возвращается увеличенное значение, а во втором — переменная тоже увеличивается, но возвращается исходное значение, которое было в ней до инкремента.

Кстати, слово обозначает увеличение на 1, а — уменьшение.

Функции

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

Функция Описание Мануал
sqrt($x) Считает квадратный корень из числа $x sqrt
abs($x) Возвращает модуль числа (т.е. абсолютное значение без знака, abs(-5) => 5 ) abs
mt_rand($a, $b) Возвращает случайное целое число от $a до $b mt_rand
max($a, $b, $c, $d) Возвращает наибольшее из нескольких чисел max
min($a, $b) Возвращает наименьшее из нескольких чисел min
pow($x, $y) Возводит $x в степень $y pow
pi() Возвращает число Пи (3.1415 и так далее) pi
floor($x) Округляет число вниз (в сторону -∞), например, floor(3.8) => 3 floor
ceil($x) Округляет число в большую сторону (в сторону +∞), например, ceil(3.1) => 4 ceil
round($x) Округляет число по математическим правилам (к ближайшему целому) round
round($x, $n) Округляет число по математическим правилам (к ближайшему целому) до $n знаков после запятой, например, round(3.1415, 2) => 3.14 round
sin($x) Считает синус от $x (где $x задается в радианах, а не в градусах). Еще есть cos($x) , tan($x) , asin($x) , но нам они не понадобятся, не бойся. sin

Обрати внимание, что функция не меняет значение указанных в скобках переменных, а возвращает новое значение. Его надо сохранить в какую-нибудь переменную, например, так:

Вывод значения переменной

Узнать, что хранится в переменной, можно, написав команду var_dump($x); или echo $x; . Переменные также можно подставлять в строку (если она в двойных кавычках), чтобы вывести какой-то поясняющий текст:

Вывод значения переменной

Задание

Итак, взяв за основу картинку ниже, выполни задание:

W3. Напиши программу, которая имитирует бросок кубика (генерирует случайное число от 1 до 6) и выводит его.

Подсказка: чтобы получить случайное число, есть функция mt_rand() .

Код, заключенный в /* . */ — это комментарий, интерпретатор его проигнорирует, но в нем ты можешь оставить коллегам-программистам какое-то полезное сообщение. Специальная последовательность символов \n (работает только в строке с двойными кавычками) называется и делает перенос текста на новую строку, без нее все бы писалось в одну длинную-длинную строчку.

Задача на переменные

Типы значений

У значений, которые, например, хранятся в переменной, есть свой тип, например, число или строка. Разница между ними в том, что, например, числа складываются и вычитаются, а строки — нет. Узнать тип значения в переменной можно, сделав var_dump($x) — она выведет и тип, и значение переменной. Всего в PHP 8 типов данных, вот они:

  • int и float — числа. Числа можно складывать, умножать, округлять, и т.д. Разница между этими 2 типами в том, что int хранит целые числа, а float — дробные. PHP сам преобразует числа одного типа в другой, когда это надо, потому тебе беспокоиться об этом не надо.
  • string — строка. Строки по идее нельзя сложить или умножить, потому при попытке это сделать PHP сначала преобразует их в числа, а потом сложит/умножит получившиеся числа.
  • null — специальный тип, обозначающий «пустое значение» или «ничто». Его можно присвоить любой переменной, например $x = null; . Возможно, этот тип где-то пригодится, потому он тут упомянут.
  • boolean , array , object и resource мы будем изучать позже.

Сделал задание? Молодец, переходи к следующему уроку.

Куда вводить код? Что надо скачать? Читай первый урок.

Есть вопросы? Задай гуглу или автору.

Нравится урок? Лайкай, репости, приглашай друзей, пости котов и Канако, шли добра, решай задачи, помогай новичкам! Кнопок для лайка нет, кто хочет зарепостить, всегда может сделать это ручками.

Как связаться с автором? Я хочу переодеть его в платье школьницы и жениться на нем. Ящик codedokode (кот) gmail.com ждет ваших писем. А вконтактик и фейсбучек ждут ваших лайков. Но ответ на банальные вопросы лучше искать в Гугле или на stackoverflow.

Я решил задачку. Молодец, делай следующий урок

Ideone не работает!11 Ну так открой Гугл и найди сайты вроде https://repl.it/languages/php , http://phptester.net/ , http://sandbox.onlinephpfunctions.com/ , http://codepad.org/ или http://www.runphponline.com/ . Не ленись.

Почему так много рекламы? Всю рекламу на сайте ставит юкоз (бесплатный хостинг же), а не я.

На сайте установлена система Google Analytics (и еще несколько аналогичных систем от юкоза). Данные о твоем IP-адресе, посещаемых страницах, времени посещения отправляются в Google Corporation, США. Хочу знать, кто и зачем сюда заходит. Поверь, другие сайты делают точно так же. Все сайты пишут логи.

  • Начало
    • Переменные
    • Условия и игра в кубики
    • Циклы и айфон в кредит
    • Массивы и рулетка
    • Строки, хакеры и шифровки
    • Функции и новый айпад
    • Регулярные выражения
    • Повторим?
    • Бонусные задачки
    • Пасты и ООП
    • Учим сами

    Что это?

    Это сайт, где собраны простые уроки по языку программирования PHP. Даже если ты никогда не слышал слова «программирование» и учишься на филолога, ты можешь попробовать их сделать.

    Скачивать и устанавливать тоже ничего не надо, делать уроки можно даже с айпада или ведроида.

    Как в php правильно присвоить переменной строку

    Переменные хранят отдельные значения, которые можно использовать в выражениях PHP. Для определения переменных применяется знак доллара $ . Например:

    Здесь определена переменная $num . Поскольку определение переменной — это отдельная инструкция, она завершается точкой с запятой.

    Как правило, названия переменный начинаются с маленькой буквы или символа подчеркивания. Стоит учитывать, что PHP является регистрозависимым языком, а значит, переменные $num и $Num будут представлять две разные переменные.

    Также при наименовании переменных нам надо учитывать следующие правила:

    • Имена переменных должны начинаться с алфавитного символа или с подчеркивания
    • Имена переменных могут содержать только символы: a–z, A–Z, 0–9, и знак подчеркивания
    • Имена переменных не должны включать в себя пробелы

    С помощью операции присвоения ( = ) переменной присваивается определенное значение:

    $num = 10;

    Здесь определена переменная $num , которая хранит число 10.

    После определения переменной и присвоения ей значения мы можем использовать ее в выражениях PHP. Например, вывести ее значение на веб-страницу:

       METANIT.COM     

    С помощью функции echo значение переменной $num выводится на веб-страницу. И при обращении к скрипту мы увидим значение переменной $num :

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

    Отличительной особенностью переменных является то, что мы можем изменять их значение:

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

    $a = 15; $b = $a; echo $b;

    Если переменная объявлена, но ей изначально не присвоено никакого значения (иначе говоря она не инициализирована), то нам будет проблематично ее использовать. Например:

    При попытке вывести значение переменной мы получим диагностическое сообщение о том, что переменная не определена:

    Warning: Undefined variable $num in C:\localhost\hello.php on line 13 22

    Поэтому перед использованием переменной ей следует присвоить начальное значение.

    Вывод значения переменной

    В предыдущих примерах для вывода значения переменной применялась команда echo , после которой указывалось выводимое значение. Однако есть и другой способ вывести значение переменной. Например, мы хотим одновременно вывести значения двух переменных:

    Здесь функции echo передается строка. Чтобы встроить в строку значение переменной, в этой строке указываем имя переменной вместе со знаком $. И кода в строке PHP встретит выражение $num_1 , он заменит это выражение значением переменной $num_1. То же самое касается и переменной $num_2 . В итоге при выполнении этого скрипта браузер отобразит значения обеих переменных:

    num_1 = 11 num_2=35

    Инициализация переменной в PHP

    Хотя в PHP и нет необходимости инициализировать переменные, это считается очень хорошей практикой. — вы про это? Так тут как раз наоборот говорится о том, что хорошая практика — инициализировать!

    29 сен 2016 в 18:40

    Вы просто неправильно растолковали предложение)) нет необходимости инициализировать переменные, НО считается очень хорошей практикой делать это. примерно вот так надо читать

    29 сен 2016 в 18:41
    @PinkTux Значит я неправильно понял =) Иногда так пишут что не понимаешь что вообще происходит
    29 сен 2016 в 18:41

    1 ответ 1

    Сортировка: Сброс на вариант по умолчанию

    Для начала — тип null

    NULL — это единственно возможное значение типа null.

    Переменная считается null, если:

    • ей была присвоена константа NULL.
    • ей еще не было присвоено никакого значения.
    • она была удалена с помощью unset().

    Почему вообще это работает

    Интерпретатор PHP использует позднее связывание(динамическая типизация — переменные связываются с типом в момент присвоения значения), потому возможно выполнение кода с переменными, которые никогда не были объявлены.

    Но тем не менее между явно объявленной null-переменной и не объявленной разница есть!

    Неинициализированная, NULL, пустая и заданная переменная

    $null = NULL; // заданная null $empty = ""; // заданная и пустая $true = true; // заданная и не пустая unset($undefined); // не инициализированная/не заданная (unset() тоже, что ее и не было) 

    введите сюда описание изображения

    Вот как это выглядит в интерпетаторе php:

    Т.е. мы видим, что если переменная не задана, то она ВООБЩЕ ПУСТАЯ!

    Результат функций isset, empty, is_null:

    введите сюда описание изображения

    Тогда в чем разница и где ее увидеть.

    При попытке обращения к неинициализированной переменной PHP отдаст значение NULL и сгенерирует E_NOTICE ошибку!

    Чтобы проверить существовала ли переменная или ей было задано значение NULL — нужно воспользоваться функцией array_key_exists :

    • array_key_exists(‘name_of_variable’, $GLOBALS); для проверки в глобальной области видимости
    • array_key_exists(‘name_of_variable’, get_defined_vars()); для проверки в текущей области видимости

    В текущем примере она сработает так:

    array_key_exists('null', get_defined_vars()); // будет true array_key_exists('undefined', get_defined_vars()); // будет false 

    Теперь ответы на вопросы

    1. Если мы используем неинициализированную переменную мы словим Notice, хотя в мануале написано что использовать неинициализированные переменные это очень хорошая практика, где?(Возможно это криво написано в мануале, возможно имелось ввиду наоборот)

    В мануале написано, что хотя инициализировать и не обязательно, но считается хорошей практикой!

    1. Если мы попытаемся к неициализированной переменной сделать допустим конкатенацию, мы словим Notice, хотя если мы напишем переменной изначально NULL, то Notice мы не словим, хотя опять же если мы выведем неинициализированную переменную через var_dump мы получим NULL. выходит в одном случае есть Notice, а в другом нет, почему?

    Про разницу null и неициализированной написал выше.

    1. Если мы присвоим переменной значение NULL будет ли считаться что переменная инициализированна? А если мы просто напишем переменную и в конце поставим точку с запятой будет ли это являться тем что переменная неинициализированна?(В мануале ни разу не видел чтобы просто писали переменную без присвоения)

    Если присвоить NULL — да, она будет инициализированной.
    Если просто напишем и в конце точка с запятой — нет, она так и будет неинициализированной.

    Переменные — Основы PHP

    В этом уроке мы познакомимся с переменными и научимся работать с ними. Мы узнаем, зачем они нужны, как их создавать, использовать и менять. Еще разберемся, как работать с константами, и что такое heredoc-синтаксис.

    Создаем переменную

    Допустим, нам нужно напечатать на экран слово «Father!» два раза или даже пять раз. Эту задачу можно решить так:

     print_r('Father!'); print_r('Father!'); 

    В простом случае так и стоит поступить, но если слово «Father!» начнет использоваться чаще и в разных частях программы, то придется его везде повторять. Если нам понадобится изменить слово, то придется найти все места, где оно использовалось и выполнить необходимую замену. А можно поступить по-другому. Вместо копирования выражения достаточно создать переменную с этой фразой:

     // greeting - переводится как приветствие $greeting = 'Father!'; print_r($greeting); print_r("\n"); print_r($greeting); // => Father! // => Father! 

    В строчке $greeting = ‘Father!’ значение ‘Father!’ присваивается переменной с именем $greeting . В PHP имена переменных начинаются со знака $. В итоге переменная указывает на данные, которые были в нее записаны.

    Когда переменная создана, можно начать ее использовать.

    Использование переменной

    Переменная подставляется в те места, где раньше стояло наше слово. Во время выполнения интерпретатор доходит до строчки print_r($greeting); и подставляет вместо переменной ее содержимое, а затем выполняет код.

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

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

    Изменение переменной

    Со временем внутри программы значения переменных могут изменяться:

     // greeting - переводится как приветствие $greeting = 'Father!'; print_r($greeting); // => Father! $greeting = 'Mother!'; print_r($greeting); // => Mother! 

    Имя осталось тем же, но внутри другие данные. Переменные в PHP не требуют специального объявления. Вместо этого переменная объявляется при первом ее использовании в программе.

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

    Переменные меняются нечасто. Обычно их используют, чтобы хранить.

    Ошибки при работе с переменными

    Переменную нужно объявить до ее использования. Если сделать это позже, то программа не заработает:

     print_r($greeting); $greeting = 'Father!'; // PHP Notice: Undefined variable: greeting in /private/var/tmp/index.php on line 3 

    Запуск программы выше завершается с ошибкой PHP Notice _ — это ошибка обращения. Она означает, что в коде используется имя (идентификатор), которое не определено. При этом в самой ошибке указан идентификатор переменой: greeting .

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

    Константы

    Разработчики часто работают с данными, которые никогда не меняются. Например, число π, которое всегда равно 3.14 и не может измениться.

    Для обращения к подобным данным в PHP принято использовать константы:

     const PI = 3.14; print_r(PI); // => 3.14 

    Создание константы отличается от создания переменной. Оно начинается с ключевого слова const и последующего имени константы. При этом знак доллара не нужен. Далее ей присваивается нужное значение.

    Константы принято именовать буквами в верхнем регистре с _ в качестве разделителя. Константа тоже может использоваться в любом выражении. Единственное ограничение — константу нельзя изменить.

    В PHP много встроенных констант, которые можно использовать в любом месте программы. Вот некоторые из них:

    • PHP_VERSION — текущая версия PHP
    • PHP_MAXPATHLEN — максимальная разрешенная длина имени файла
    • PHP_INT_MAX — максимальное возможное значение целых чисел (integer)

    Кроме обычных констант в PHP существует отдельная группа — магические константы. Их отличия заключаются в следующем:

    • Магические константы невозможно определить самому, можно пользоваться только существующими
    • Магические константы начинаются и заканчиваются символами __ (два подчеркивания)
    • Магия заключается в том, что такие константы имеют одно и то же значение только в пределах определенной части программы

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

    • __LINE__ — содержит текущую строку файла, в котором она используется
    • __FILE__ — путь до текущего файла
    • __DIR__ — путь до директории, в которой находится текущий файл

    Heredoc

     $str =  print_r($str); // => Пример строки, // => охватывающей несколько строк, // => с использованием heredoc-синтаксиса. // => Здесь не нужно экранировать ни одинарные ', ни двойные " кавычки. 

    Перед закрывающим идентификатором, в нашем случае — EOT , не должны стоять пробелы, иначе PHP начнет ругаться на ошибку синтаксиса.

    Выводы

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

    Дополнительные материалы

    Аватары экспертов Хекслета

    Остались вопросы? Задайте их в разделе «Обсуждение»

    Вам ответят команда поддержки Хекслета или другие студенты

    Об обучении на Хекслете

    • Статья «Как учиться и справляться с негативными мыслями»
    • Статья «Ловушки обучения»
    • Статья «Сложные простые задачи по программированию»
    • Урок «Как эффективно учиться на Хекслете»
    • Вебинар « Как самостоятельно учиться »

    Открыть доступ

    Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

    • 130 курсов, 2000+ часов теории
    • 1000 практических заданий в браузере
    • 360 000 студентов

    Наши выпускники работают в компаниях:

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

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