Ключевые PHP-операторы
Операторы — это символы, которые вы можете использовать для манипулирования переменными. Операторы в PHP работают почти по такому же принципу, что и в математике.
Оператор присваивания
Первый оператор, с которым вы должны познакомиться, — это оператор присваивания (“=”).
Обратите внимание: это не то же самое, что оператор равенства.
$x = 55 означает “x присваивается значение 55”, а не “x равно 55”.
Оператор равенства выражается через двойной знак равенства (“==”).
Если вы хотите получить истинное или ложное значение x=55, вам нужно написать следующее: $x == 55;
Оператор присваивания используется для присвоения значения определенным переменным.
Оператор Join
Еще одним часто используемым оператором является оператор присоединения (Join) или конкатенации.
В основном он используется для соединения двух и более строк вместе.
Пример:
$a= "apple";
$b = "pie";
$c = $a.$b;
echo $c;
?>
Результат:
Оператор Join обычно используется для присоединения одной строки к другой.
Сокращение оператора Join
Существует специальный синтаксис для написания функции Join. Вместо того чтобы повторять одну из переменных с обеих сторон, вы можете просто написать $a .= $b, что означает “присоединить $b к $a”.
$a .= $b значит $a = $a.$b;
Арифметические операторы
Арифметические операторы в языке PHP работают практически так же, как и в математике.
Они используются между двумя переменными для выполнения определенных математических операций.
Поскольку это арифметические операторы, обе переменные должны быть числами.
Пример:
$a = 100;
$b = 200;
$result = $a+$b;
echo $result;
?>
Результат:
Они работают по тому же принципу, что и в математике.
Пример:
$a = 100;
$b = 9;
$result = $a-$b;
echo $result;
echo "
";
$result = $a*$b;
echo $result;
echo "
";
$result = $a/$b;
echo $result;
?>
Результат:
Вы также можете использовать “ — ” для присвоения отрицательного числа.
Таким образом, операторы языка PHP и в самом деле не слишком отличаются от математических.
Единственный оператор, который, возможно, покажется вам странным, — это оператор модулей %. Он означает “остаток от”: так, $a%$b означает “то, что остается после деления $a на $b”.
echo 27%10;
echo "
";
echo 27%2;
echo "
";
echo 27%9;
?>
Интересное (но несущественное) примечание: технически вы можете использовать арифметические операторы со строками. Но поскольку PHP преобразует строку в число, с практической точки зрения это совершенно бессмысленно.
Объединение присваиваний
При желании вы можете объединить два оператора присваивания вместе.
Пример:
$a = 5;
$b = 10;
$c = $b($a=10);
$c == 20;
?>
Наша цель в этом случае — сохранить строку.
В дополнение к простому присваиванию можно использовать так называемые комбинированные операторы присваивания. Это сокращенные варианты присваивания некоторых операторов.
Например, если мы хотим увеличить значение $a на 7, мы можем написать $a = $a+7 ; но можно также использовать комбинированное присваивание $a += 7 . Это то же самое, что $a = $a+7 .
Еще одно действие, которое можно сделать с переменными, — это увеличить или уменьшить их вручную. Это можно сделать, добавив a++ или $a —перед или после переменной.
С помощью знаков “+” можно увеличить значение переменной на 1.
Это эквивалентно $a = $a + 1 ;
Есть ли разница, где ставить знаки ++ или — ? Да, есть.
Если вы ставите плюсы перед переменной, то это добавляет 1 к переменной до того, как ваш код начнет с ней работать.
Если вы ставите плюсы после переменной, то вы увеличиваете значение переменной только после работы с ней.
Echo $a++ сначала покажет 17, а затем увеличит значение $a с 17 до 18.
Echo ++$a сначала увеличит значение $a до 18, а затем выведет его на экран.
Как вы уже, наверное, догадались, тот же принцип аналогичен и для- -, с той лишь разницей, что вы уменьшаете, а не увеличиваете значение переменной.
Оператор ссылок
Используя этот оператор, мы как бы говорим: “Я отдаю вам свою переменную, и теперь все, чему вы будете равны, буду равен и я”.
$a = 7;
$b = &$a;
$b = 11;
?>
Операторы сравнения
Оператор равенства
Как уже говорилось выше при рассмотрении оператора присваивания, “==” — это способ проверки, равно ли что-то чему-то другому.
Пример:
$a = 100;
$b = 100;
echo $a==$b;?>
Результат:
Тут легко допустить ошибку и случайно поставить “=”.
Проверка типа переменной
PHP по умолчанию содержит ряд функций, позволяющих проверить или устанавливать тип переменной.
Две наиболее важные из них — gettype() и settype() .
Их названия говорят сами за себя.
Просто введите переменную в gettype() — и получите ее тип.
Изменить тип переменной можно с помощью settype() .
Пример:
$a = 71;
echo gettype($a);
echo "
";
settype($a, "double");
echo gettype($a);
?>
Результат:
- Как использовать PHP для вывода данных?
- PHP: типы операторов
- Как находить уязвимости в коде на PHP?
Что значит «.=» в php?
Не могу найти значение символа .= (точка равно ) в php. И не могу понять, что означает $key& , конкретно зачем амперсанд в конце. Создаю функцию по удалению get -параметра из url. Пример:
$ulr .= "$key&"
Отслеживать
29k 1 1 золотой знак 21 21 серебряный знак 43 43 бронзовых знака
задан 15 фев 2018 в 10:27
111 1 1 серебряный знак 10 10 бронзовых знаков
$ulr .= «$key&» == $ulr = $ulr.»$key&» php.net/manual/ru/language.operators.string.php зачем амперсант в конце Да просто литерал. разделитель параметров в URL, вероятно. И эта. в слове «амперсанд» нет буквы «т».
15 фев 2018 в 10:30
амперсанд это просто символ. То есть, если $key был равен 123, то к строке $url будет дописана строка «123&»
15 фев 2018 в 10:32
parse_url , parse_str , unset и implode вам в помощь
15 фев 2018 в 10:37
хотя можно и preg_replace -ом все решить
15 фев 2018 в 10:38
Спасибо большое.
15 фев 2018 в 11:02
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Добавить в переменную
Например:
$a = ‘abc’;
$a .= ‘123’;
echo $a; //Выведит abc123
Отслеживать
ответ дан 15 фев 2018 в 10:45
MyLoveIsSharks MyLoveIsSharks
348 1 1 серебряный знак 14 14 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Выражения
Выражения — это самые важные строительные элементы PHP. Почти всё, что вы пишете в PHP, является выражением. Самое простое и точное определение выражения — «все что угодно, имеющее значение».
Основными формами выражений являются константы и переменные. Если вы записываете $a = 5 , вы присваиваете 5 переменной $a . 5 , очевидно, имеет значение 5 или, другими словами, 5 — это выражение со значением 5 (в данном случае 5 — это целочисленная константа).
После этого присвоения вы ожидаете, что значением $a также является 5, поэтому, если вы написали $b = $a , вы полагаете, что работать это будет так же, как если бы вы написали $b = 5 . Другими словами, $a это также выражение со значением 5. Если всё работает верно, то именно так и произойдёт.
Немного более сложными примерами выражений являются функции. Например, рассмотрим следующую функцию:
function foo ()
return 5 ;
>
?>?php
Исходя из того, что вы хорошо знакомы с концепцией функций (если нет, то прочитайте главу о функциях), вы полагаете, что запись $c = foo() абсолютно эквивалентна записи $c = 5 , и вы правы. Функции — это выражения, значением которых является то, что возвращает функция. Поскольку foo() возвращает 5, значением выражения ‘ foo() ‘ является 5. Как правило, функции возвращают не просто статическое значение, а что-то вычисляют.
Разумеется, значения в PHP не обязаны быть целочисленными, и очень часто ими не являются. PHP поддерживает четыре типа скалярных значений: целочисленные ( int ), с плавающей точкой ( float ), строковые значения ( string ) и булевы ( bool ) значения (скалярными являются значения, которые вы не можете ‘разбить’ на меньшие части, в отличие, например, от массивов). PHP поддерживает также два комбинированных (не скалярных) типа: массивы и объекты. Любое значение такого типа может присваиваться переменной или возвращаться функцией.
Однако PHP, как и многие другие языки, понимает гораздо больше выражений. PHP — это язык, ориентированный на выражения и рассматривающий почти все как выражение. Вернёмся к примеру, с которым мы уже имели дело: $a = 5 . Легко заметить, что здесь присутствуют два значения — значение целочисленной константы 5 и значение переменной $a , также принимающей значение 5. Но на самом деле здесь присутствует и ещё одно значение — значение самого присвоения. Само присвоение вычисляется в присвоенное значение, в данном случае — в 5. На практике это означает, что $a = 5 , независимо от того, что оно делает, является выражением со значением 5. Таким образом, запись $b = ($a = 5) равносильна записи $a = 5; $b = 5; (точка с запятой обозначает конец выражения). Поскольку операции присвоения анализируются справа налево, вы также можете написать $b = $a = 5 .
Другой хороший пример ориентированности на выражения — префиксный и постфиксный инкремент и декремент. Пользователи PHP и многих других языков возможно уже знакомы с формой записи variable++ и variable— . Это операторы инкремента и декремента. Также как и C, PHP поддерживает два типа инкремента — префиксный и постфиксный. Они оба инкрементируют значение переменной и эффект их действия на неё одинаков. Разница состоит в значении выражения инкремента. Префиксный инкремент, записываемый как ++$variable , вычисляется в инкрементированное значение (PHP инкрементирует переменную до того как прочесть её значение, отсюда название ‘пре-инкремент’). Постфиксный инкремент, записываемый как $variable++ , вычисляется в первоначальное значение переменной $variable до её приращения (PHP инкрементирует переменную после прочтения её значения, отсюда название ‘пост-инкремент’).
Очень распространённым типом выражений являются выражения сравнения. Результатом вычислений являются false (ложь) или true (истина). PHP поддерживает операции сравнения > (больше), >= (больше либо равно), == (равно), != (не равно), < (меньше) и
Последний пример выражений, который мы здесь рассмотрим, это смешанные выражения операции и присвоения. Вы уже знаете, что если вы хотите увеличить $a на 1, вы можете просто написать $a++ или ++$a . Но что, если вы хотите прибавить больше, чем единицу, например, 3? Вы могли бы написать $a++ много раз, однако, очевидно это не очень рациональный и удобный способ. Гораздо более распространённой практикой является запись вида $a = $a + 3 . $a + 3 вычисляется в значение $a плюс 3 и снова присваивается $a , увеличивая в результате $a на 3. В PHP, как и в некоторых других языках, таких как C, вы можете записать это более коротким образом, что увеличит очевидность смысла и быстроту понимания кода по прошествии времени. Прибавить 3 к текущему значению $a можно с помощью записи $a += 3 . Это означает дословно «взять значение $a , прибавить к нему 3 и снова присвоить его переменной $a «. Кроме большей понятности и краткости, это быстрее работает. Значением $a += 3 , как и обычного присвоения, является присвоенное значение. Обратите внимание, что это НЕ 3, а суммированное значение $a плюс 3 (то, что было присвоено $a ). Таким образом может использоваться любой бинарный оператор, например, $a -= 5 (вычесть 5 из значения $a ), $b *= 7 (умножить значение $b на 7) и т.д.
Существует ещё одно выражение, которое может выглядеть необычно, если вы не встречали его в других языках — тернарный условный оператор:
$first ? $second : $third
?>?php
Если значением первого подвыражения является true (не ноль), то выполняется второе подвыражение, которое и будет результатом условного выражения. В противном случае будет выполнено третье подвыражение и его значение будет результатом.
Следующий пример должен помочь вам немного улучшить понимание префиксного и постфиксного инкремента и выражений:
function double ( $i )
return $i * 2 ;
>
$b = $a = 5 ; /* присвоить значение пять переменным $a и $b */
$c = $a ++; /* постфиксный инкремент, присвоить значение $a
(5) переменной $c */
$e = $d = ++ $b ; /* префиксный инкремент, присвоить увеличенное
значение $b (6) переменным $d и $e */
?php
/* в этой точке и $d, и $e равны 6 */
$f = double ( $d ++); /* присвоить удвоенное значение $d перед
инкрементом (2*6 = 12) переменной $f */
$g = double (++ $e ); /* присвоить удвоенное значение $e после
инкремента (2*7 = 14) переменной $g */
$h = $g += 10 ; /* сначала переменная $g увеличивается на 10,
приобретая, в итоге, значение 24. Затем значение
присвоения (24) присваивается переменной $h,
которая в итоге также становится равной 24. */
?>
Некоторые выражения могут рассматриваться как инструкции. В данном случае инструкция имеет вид ‘ expr ; ‘ — выражение с последующей точкой с запятой. В записи $b = $a = 5; , $a = 5 — это верное выражение, но само по себе не инструкция. Тогда как $b = $a = 5; является верной инструкцией.
Последнее, что стоит упомянуть, это истинность значения выражений. Во многих случаях, как правило, в условных операторах и циклах, вас может интересовать не конкретное значение выражения, а только его истинность (значение true или false ). Константы true и false (регистронезависимые) — это два возможных булевых значения. При необходимости выражение автоматически преобразуется в булев тип. Подробнее о том, как это происходит, смотрите в разделе о приведении типов.
PHP предоставляет полную и мощную реализацию выражений, и их полное документирование выходит за рамки этого руководства. Вышеприведённые примеры должны дать вам представление о том, что они из себя представляют и как вы сами можете создавать полезные выражения. Далее, для обозначения любого верного выражения PHP в этой документации мы будем использовать сокращение expr .
Что значит знак «->» в PHP?
Добрый день, Подскажите пожалуйста начинающему, что значит знак «->» в PHP? Гуголю знак не поддается ( Например как интерпритировать выражение: if ( $use_desc_for_title == 0 || empty($category->description) ) Спасибо
На сайте с 15.12.2005
25 декабря 2013, 22:59
Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
На сайте с 07.12.2013
25 декабря 2013, 23:18
edogs:
http://www.php.net/manual/ru/language.oop5.properties.php
Большущее спасибо за оперативный ответ. Хоть понятно в какую сторону думать. и все же для наглядности «переведите» ))) пожалуйста с php на обывательский/человеческий условие if ( empty($category->description) ) ? ПС: Тапками не закидывайте пожалуйста — пытаюсь испортить первый шаблон Вордпресс 🙂 — по пути операторы php «с нуля » пытаюсь разобрать. Образование — Бейсик облегченный 🙂
На сайте с 04.07.2010
25 декабря 2013, 23:28
Переменная $category имеет свой массив, в ней есть аргумент description, то есть конструкция $category->description сразу обращается к этому аргументу. Можно еще $category[0][3] тоже самое что и $category->description
На сайте с 07.12.2013
25 декабря 2013, 23:39
AGRESSOR:
Переменная $category имеет свой массив, в ней есть аргумент description, то есть конструкция $category->description сразу обращается к этому аргументу.
Можно еще $category[0][3] тоже самое что и $category->description