If else php короткая запись

Условный оператор if в PHP

Главное в действие данное оператора — это условие. if в переводе с английского значит если. Условие принимается в качестве аргумента (то что в скобках). В качестве условия может выступать логическое выражение или логическая переменная. Если проще, то смысл выражения будет такой:

if (условие){  условие выполнено, делаем так  }  else  {  условие не выполнено, делаем иначе  }

Надеюсь логика условной операции понятна. Теперь давайте рассмотрим пример.

<?php   $a = 5;  $b = 25;    // Теперь внимание! Условие: Если $b больше $a  // Знаки > и < , как и в математике, обозначают больше и меньше  if($b > $a)  {      // если условие выполнено, то выполняем это действие      echo "$b больше $a";  }  else   {      // если не выполнено, то это         echo "$a больше или равно $b";  }  ?> 

Демонстрация Скачать исходники

В итоге скрипт выведет 25 больше 5. Пример довольно прост. Надеюсь всё понятно. Теперь предлагаю рассмотреть ситуацию сложнее, где нужно соблюсти несколько условий. Каждое новое условие будет содержать после основного условия if() — вспомогательное, которое записывается как else if(). В конце как обычно будет else.

Задача: В школе проводят тестирование. Скрипту нужно высчитать балл, зная условия получения каждой оценки и сам балл школьника. Давайте посмотрим как это записать, и не забудьте прочитать комментарий.

<?php   $test = 82; // допустим школьник написал тест на 82 балла    // первое условие напишем для пятёрки  if($test > 90)  {      // если условие соблюдено, то выполняем это действие.      echo "Оценка 5";  }  // Знак && обозначает "и, объединение", что условие соблюдено если и то, и то верно  // то есть балл меньше 91 и больше 80, тогда 4. Иначе условия считываются дальше  else if ($test < 91 && $test > 80)   {      echo "Оценка 4";  }  else if ($test < 81 && $test > 70)   {      echo "Оценка 3";  }  else  {      echo "Надо бы ещё раз написать тест...";  }  ?>

Демонстрация Скачать исходники

Наш школьник, который успевает и отдохнуть, и написать нормально тест получает оценку 4! А принцип работы надеюсь понятен.

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

$age = 19; // переменная с возрастом    if ($age > 17){    echo "Всё! Мне можно делать всё что угодно! Мне уже $age!";  }

Вполне себе милый пример короткой записи условной операции. else писать не обязательно.

Дальше встаёт другой вопрос: а есть же, наверное, какие-либо другие операторы сравнения?

Операторы сравнения в PHP

Принцип работы условной операции понятен. Но, как Вы понимаете, способов сравнить намного больше. Давайте посмотрим ниже на таблицу с операторами сравнения.

Пример        Название            Результат  $a == $b    Равно             True, если $a равно $b  $a === $b   Идентично         True, если $a равно $b и обе переменных принадлежат одному типу  $a != $b    Не равно          True, если $a не равно $b  $a === $b   Не идентично      True, если $a не равно $b и оба их типа не совпадают  $a > $b     Больше чем        True, если $a больше, чем $b  $a < $b     Меньше чем        True, если $a меньше, чем $b  $a >= $b    Больше или равно  True, если $a больше или равно $b  $a <= $b    Меньше или равно  True, если $a меньше или равно $b

Теперь рассмотрим операторы на примерах:

$a = 5;    // вопреки привычке = значит присваивание значение переменной, а == как равно  if ($a == 5){    echo "$a равно 5"; // выведет "5 равно 5"  } else {    echo "$a не равно 5";  }    if ($a != 6){    echo "$a не равно 6"; // выведет "5 не равно 6". Нужно в случае отрицания  } else {    echo "$a каким-то образом равно 6";  }    // с больше и меньше думаю всё понятно. Поэтому пример сложнее  if ($a <= 6){    echo "$a меньше или равно 6"; // выведет "5 меньше или равно 6"  } else {    echo "$a больше 6";  }

Логические операторы PHP

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

Пример       Название          Результат  $a and $b    Логическое 'и'     TRUE если и $a, и $b TRUE.  $a or $b     Логическое 'или'   TRUE если или $a, или $b TRUE.  $a xor $b    Исключающее 'или'  TRUE если $a, или $b TRUE, но не оба.  ! $a         Отрицание          TRUE если $a не TRUE.  $a && $b     Логическое 'и'     TRUE если и $a, и $b TRUE.  $a || $b     Логическое 'или'   TRUE если или $a, или $b TRUE.

Уже обратили внимание, что для операций и и или есть дополнительные операторы? Так сделано для того, чтобы расставить приоритеты в сложных операциях сравнения. В таблице логические операторы приведены в порядке приоритета: от меньшего к большему, то есть, например, || имеет больший приоритет, чем or.

Переходим к примерам

$a = 5;  $b = 6;  $c = 7;    // условие: Если 5 не равно 6 (ВЕРНО)  И  6 не равно 7 (ВЕРНО)  if ($a < 6 && $b != $c){    echo "Действительно так!"; // выведет "Действительно так!" т.к. ОБА условия ВЕРНЫ  } else {    echo "Одно из условий не верно";  }    // условие: Если 6 не равно 6 (НЕВЕРНО)  ИЛИ  6 не равно 7 (ВЕРНО)  if ($b != 6 || $b != $c){    echo "Всё так!"; // выведет "Всё так!", т.к. хотя бы ОДНО из условий ВЕРНО  } else {    echo "Оба условия не верны";  }

Тернарный оператор

К вопросу тернарного кода я предлагаю Вам вернуться позже. Вовсе не упомянуть его я не мог, так как это важная конструкция, которая существенно сокращает размер кода. Предлагаю сразу рассмотреть код.

Суть кода: (условие) ? значение a если true : значение a если false

Таким образом, мы сокращаем запись оператора if. Однако, данная операция действительна только с присваиванием значений переменной. Теперь давайте рассмотрим готовый пример.

<?php  // Пример использования тернарного оператора  $settings = (empty($_POST['settings'])) ? 'По умолчанию' : $_POST['settings'];    // Приведенный выше код аналогичен следующему блоку с использованием if/else  if (empty($_POST['settings'])) {      $settings = 'По умолчанию'; // Если ничего не передано, то оставляем "По умолчанию"  } else {      $settings = $_POST['settings']; // Если передано, то $settings присваивается переданное значение.  }  ?>

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

Спасибо за внимание!

tradebenefit.ru

Общая форма условного оператора

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

If else php короткая запись

До появления младшего «брата» оператора switch/case много воды утекло, программисты на различных языках составляли громоздкие конструкции из многострочных операторов if.

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

PHP if в короткой записи и полной форме одинаково удобен и комфортабельно воспринимаем в тексте кода скрипта.

If else php короткая запись

В приведенном на фото примере (1) — исходные данные, (2) — полная форма условного оператора. Условие записывается в круглых скобках и может быть сколь угодно длинным. Блок операторов в первых фигурных скобках выполняется в случае, если условие истинно. Блок в фигурных скобках после слова «else» выполнится, если условие ложно.

Можно использовать простую форму (3), когда обе пары скобок опущены. Но программист должен понимать всю меру ответственности. Написать фигурные скобки стоит не дорого, но это гарантия, что управление при любом условии не выйдет из-под контроля.

Тернарная форма условного оператора

В примере (4) приведено самое популярное применение простого условия. Краткая запись if на PHP идеально дополняет функцию isset(). Очень удобно проверить поступление данных по GET (или POST), а в случае отсутствия ожидаемого значения установить переменную в значение по умолчанию.

Следует не забывать ограничивать условия круглыми скобками. Следует знать, что тернарный оператор легко имплантируется в выражения. Следует понимать, что результат оператора PHP if в короткой записи «на равных условиях» участвует в выражении. Если в выражении присутствуют различные математические или строчные операторы, то результат тернарного «if» — равноправный операнд выражения.

Однозначность условия — залог успеха

Любой оператор в современном императивном программировании не может быть пропущен. Все выполняется так и только так, как задумано программистом. На PHP if (в короткой записи и полной форме) имеет одинаковый уровень ответственности.

Еще по теме:   Как войти на сайт WIX.com

Тернарный вариант — это результат. Полная форма — это перенаправление управления. В первом случае ошибка в применении приведет к ошибкам в данных. Во втором случае управление будет передано в ненадлежащем направлении.

If else php короткая запись

При наличии сомнений не следует использовать условия PHP в короткой записи. If () {} else {} может оказаться нагляднее и практичнее. Общее правило, гарантирующее стабильный результат: есть сомнение — лишите его основания. Пусть сначала будет большое, но предельно понятное решение.

Когда спектр условий станет очевидным и однозначно понятным, можно реализовать на PHP if в короткой записи.

Источник

ruud.ru

Не нужно советовать то, в чём, как я теперь понял, Вы слабо разбираетесь!

Да хоть пусть тысячи ссылок выскочат в гугле, если Вы сами не можете отличать элементарных понятий, то зачем было вообще оставлять эти посты?! Я, кстати, аналогично могу Вас отправить на сайт, только не на php.su, куда Вы направили Сергея, а на сайт разработчика(php.net) для глубокого понимания затронутого Вами вопроса, ибо для меня только этот сайт является основным источником получения любой информации по PHP. Честно говоря, мне не понятна позиция и идеология помощи с Вашей стороны, если уже в первых постах, Вы отказываете в помощи тем, кто задал вопрос. Ну и что, что человек не знаком с языком PHP? А что, Вы сразу стали всё понимать и осознавать? Я согласен, что для полного понимания того, о чём спросил Сергей, можно было направить на сторонние ресурсы инета, но Вы же считаете ниже своего достоинства дать ответ в одно предложение Сергею, что такое PHP(гмм…).

Мне очень жаль, что Вы, извиняюсь за выражение, «смешиваете хлеб с маслом», ибо, если для Вас «Альтернативный синтаксис PHP» и «Alternative syntax for control structures(Альтернативный синтаксис управляющих структур)» — одно и то же, то о каком доверии к Вашим знаниям и словам может идти речь?! Вы просто затуманиваете мозги людям, малосведущим в этом вопросе.

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

Теперь вернусь к основному вопросу темы.
В природе затронутого языка нет никакого альтернативного синтаксиса PHP(подчёркиваю это)! Есть язык программирования PHP, который имеет соответственно, свой синтаксис(форма записи сценариев-скриптов для разработки приложений). А ещё есть интерпретатор языка, которому написанные сценарии передаются для обработки и вывода сформированных данных в браузер, не буду в данном вопросе затрагивать компилятор языка, но он в каком-то смысле, то же имеет отношение к сути вопроса.
Если же ещё рассматривать и Объектно-Ориентированную направленность языка, то это ко всему ещё и условно-независимая среда, которая во взаимосвязи с ассемблером даёт огромную мощь и поле деятельности программисту-разработчику.

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

Теперь о самом синтаксисе языка PHP.
В выше сказанном, замечу, нигде не используется понятие или термин(понимайте, как уж Вам ближе) альтернативного синтаксиса языка PHP.
Я прошу автора дать ссылку на страницу сайта разработчика, где чёрным по белому написано о существовании «Альтернативного синтаксиса языка программирования PHP». Только прошу не посылать меня на страницу , где рассматривается разработчиками функциональная возможность интерпретатора языка PHP(подчёркиваю, интерпретатора, а не синтаксис языка) вести Альтернативную запись некоторых синтаксически-управляющих структур, а именно: if, while, for, foreach, и switch.
При записи сценариев с использованием этих структур допускалась сокращённая форма, в которой вместо открывающих выражение конструкции фигурных скобок может быть поставлено :( двоеточие), а в качестве закрывающих, используются резервированные слова операторов в связке с «end», то есть: endif;, endwhile;, endfor;, endforeach;, или endswitch.

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

Еще по теме:   Пакетная обработка изображений

Проще говоря, в интерпретаторе была введена(кстати ещё во второй версии и в ряде последующих версий развивалась, но не долго), функция для записи некоторых условных сокращений внутри логики синтаксиса сценария, но не самого языка. Только для этого в интерпретаторе должна быть включена директива short_open_tag на «on», в противном случае, все эти сокращения в интерпретаторе будут восприниматься, как синтаксическая ошибка и будет выведена соответствующая запись в браузер или файл!

И замечу, что, действительно, эта альтернативная форма, форма сокращений, введённая разработчиками в интерпретатор, но не язык, долгое время пользовалась популярностью. Но с развитием мощи интерпретатора и возможностей самого языка, введённая форма сокращений стала создавать ряд непредвиденных ситуаций, в особенности, когда речь заходила о массивных проектах и многомерных конструкций. Это приводило к тому, что ранее работоспособный код становился не работоспособным. И, в первую очередь, это коснулось приложений, использующих альтернативный синтаксис структур, написанных для более ранних версий интерпретатора. Но и это оказалось не всё, наши умные пользователи, нашли возможность использовать данную возможность сокращений в своих целях, — для проникновения внутрь кода, в том числе, используя хитроумные скрипты, и в сердце сервера. Разработчики видя это, прекратили проект по развитию альтернативной формы интерпретатора уже на стадии 5-й версии и сейчас лишь поддерживается этот функционал лишь потому, что ещё много проектов в сети, написанных с использованием сокращений. И уж не знаю, как долго они его будут поддерживать, но разработчики заявили, что в 6-й версии они намерены уже отказаться от ранее принятой формы сокращений. Я склонен им верить.

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

Автор ссылается на то, что он активно использует в свой практике старые методы, применяя сокращения, ну что ж, в это м я не вижу ничего дурного, но не нужно стоять на месте. Из сказанного автором могу сделать вывод, что он применяет альтернативную запись структур в простых приложениях, но достаточно написать многомерную конструкцию, как код прекращает восприниматься интерпретатором и выводится синтаксическая ошибка, либо, исправляя ошибки, добавляя в нужных местах конструкции дополнительные конструкции, двоеточия и end-ы, код становится не читабельным, запутанными и по больше части опять приводящий в итоге к неработоспособности. Вот Вам для разнообразия, напишите сценарий того же калькулятора, воспользовавшись условными сокращениями и попробуйте запустить в интерпретаторе, желательно 5-й версии, сами уведите реакцию интерпретатора на написанный сценарий.

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

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

То ли дело, вызвал функцию, класс или объект из библиотеки, сделав запись в 3-5 сток, а порой и в одну(в сложных проектах может быть больше, но там и требования к решению поставленных задач выше), отправил в них нужные данные, там же код выполнился и нам вернулся готовый результат, идущий уже в браузер или ещё куда, взаимозависимости от поставленных задач.
Вот это я понимаю, логически грамотный и верный подход в решении задач, поставленных при проектировании приложений, от простых, до самых сложных.

Вот, вроде всё разъяснил и расписал для полного понимания вопроса.

Я нисколько не собираюсь никого в чём-то переубеждать или склонять на свою сторону. Сколько людей, столько и мнений, но иногда нужно правде смотреть в глаза.
В данной теме автор не открыл ничего нового и сверхъестественного, ибо данный функционал стар, как мир(в широком смысле слова, разумеется) и на мой взгляд, иногда стоит прислушиваться к мнениям других, а не с пеной изо-рта доказывать свою позицию. Можете оставаться и при своём мнении, Ваше право, его у Вас никто не отбирал, но кому-то, наверняка мои разъяснения помогут понять суть вопроса глубже и стоит ли в дальнейшем использовать форму сокращений, если в один прекрасный день выйдет версия интерпретатора, не поддерживающего данный функционал.

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

Но…как говорится, не допускает ошибок лишь тот, кто ничего не делает, так что автору отдельное Спасибо и успехов в дальнейших начинаниях!!!

Еще по теме:   Как установить Total Commander на компьютер

webformyself.com

Общая форма условного оператора

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

Выбор правильного пути

До появления младшего «брата» оператора switch/case много воды утекло, программисты на различных языках составляли громоздкие конструкции из многострочных операторов if.

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

PHP if в короткой записи и полной форме одинаково удобен и комфортабельно воспринимаем в тексте кода скрипта.

Пример применения if

В приведенном на фото примере (1) — исходные данные, (2) — полная форма условного оператора. Условие записывается в круглых скобках и может быть сколь угодно длинным. Блок операторов в первых фигурных скобках выполняется в случае, если условие истинно. Блок в фигурных скобках после слова «else» выполнится, если условие ложно.

Можно использовать простую форму (3), когда обе пары скобок опущены. Но программист должен понимать всю меру ответственности. Написать фигурные скобки стоит не дорого, но это гарантия, что управление при любом условии не выйдет из-под контроля.

Тернарная форма условного оператора

В примере (4) приведено самое популярное применение простого условия. Краткая запись if на PHP идеально дополняет функцию isset(). Очень удобно проверить поступление данных по GET (или POST), а в случае отсутствия ожидаемого значения установить переменную в значение по умолчанию.

Следует не забывать ограничивать условия круглыми скобками. Следует знать, что тернарный оператор легко имплантируется в выражения. Следует понимать, что результат оператора PHP if в короткой записи «на равных условиях» участвует в выражении. Если в выражении присутствуют различные математические или строчные операторы, то результат тернарного «if» — равноправный операнд выражения.

Однозначность условия — залог успеха

Любой оператор в современном императивном программировании не может быть пропущен. Все выполняется так и только так, как задумано программистом. На PHP if (в короткой записи и полной форме) имеет одинаковый уровень ответственности.

Тернарный вариант — это результат. Полная форма — это перенаправление управления. В первом случае ошибка в применении приведет к ошибкам в данных. Во втором случае управление будет передано в ненадлежащем направлении.

Однозначность условия

При наличии сомнений не следует использовать условия PHP в короткой записи. If () {} else {} может оказаться нагляднее и практичнее. Общее правило, гарантирующее стабильный результат: есть сомнение — лишите его основания. Пусть сначала будет большое, но предельно понятное решение.

Когда спектр условий станет очевидным и однозначно понятным, можно реализовать на PHP if в короткой записи.

Источник: fb.ru

monateka.com

Общая форма условного оператора

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

До появления младшего «брата» оператора switch/case много воды утекло, программисты на различных языках составляли громоздкие конструкции из многострочных операторов if.

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

PHP if в короткой записи и полной форме одинаково удобен и комфортабельно воспринимаем в тексте кода скрипта.

В приведенном на фото примере (1) — исходные данные, (2) — полная форма условного оператора. Условие записывается в круглых скобках и может быть сколь угодно длинным. Блок операторов в первых фигурных скобках выполняется в случае, если условие истинно. Блок в фигурных скобках после слова «else» выполнится, если условие ложно.

Можно использовать простую форму (3), когда обе пары скобок опущены. Но программист должен понимать всю меру ответственности. Написать фигурные скобки стоит не дорого, но это гарантия, что управление при любом условии не выйдет из-под контроля.

Тернарная форма условного оператора

В примере (4) приведено самое популярное применение простого условия. Краткая запись if на PHP идеально дополняет функцию isset(). Очень удобно проверить поступление данных по GET (или POST), а в случае отсутствия ожидаемого значения установить переменную в значение по умолчанию.

Следует не забывать ограничивать условия круглыми скобками. Следует знать, что тернарный оператор легко имплантируется в выражения. Следует понимать, что результат оператора PHP if в короткой записи «на равных условиях» участвует в выражении. Если в выражении присутствуют различные математические или строчные операторы, то результат тернарного «if» — равноправный операнд выражения.

Однозначность условия — залог успеха

Любой оператор в современном императивном программировании не может быть пропущен. Все выполняется так и только так, как задумано программистом. На PHP if (в короткой записи и полной форме) имеет одинаковый уровень ответственности.

Тернарный вариант — это результат. Полная форма — это перенаправление управления. В первом случае ошибка в применении приведет к ошибкам в данных. Во втором случае управление будет передано в ненадлежащем направлении.

При наличии сомнений не следует использовать условия PHP в короткой записи. If () {} else {} может оказаться нагляднее и практичнее. Общее правило, гарантирующее стабильный результат: есть сомнение — лишите его основания. Пусть сначала будет большое, но предельно понятное решение.

Когда спектр условий станет очевидным и однозначно понятным, можно реализовать на PHP if в короткой записи.

Поделиться:
Нет комментариев

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

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

×
Рекомендуем посмотреть
Adblock
detector