Вернуться на страницу трюков

Правильный вывод переменных

"Аааа", у меня не работает. Обычная проблема в том, что некий господин П. научил всех неправильно выводить информацию. Сейчас рассмотрим неправильные способы вывода информации и исправим то, что уже натворили:
<?php
echo "Мы купили куклу и назвали её $name. Волосы у неё были $color цвета.";
echo "<input type='text' name='color'>$color</a>";
echo("Username already taken!<a href='register.php'>Go back</a>");
print <<<HERE
<form action="$aaa" method="post">
HERE;
print_f("<a href='view_news.php?id=%s'>Подробнее...</a>(%s)", $myrow["mini_img"], $myrow["title"])


Узнали себя? Поздравляю, Вы пришли по адресу. Рассмотрим каждый из примеров и уничтожим внутри Вас эти злокачественные коды.

Правило №1:

Способы вывода текста echo, print. Никакие не 'print <<< HERE' или print_f! (HERE считается более устаревшим вариантом и уже как лет 5 никто не пользуется, print_f употребляется для вывода обработанного текста).

Правило №2:

Вывод echo (""); в скобки брать не надо, это совсем ни к чему, достаточно просто: echo "";

Правило №3:

Вывод текста в echo можно обрамлять как одинарной кавычкой, так и двойной:
<?php echo 'HELLO WORLD';
echo "HELLO WORLD";

Так какой правильнее пользоваться? Наилучшим вариантом было бы заглянуть в Стандарты Консорциума Всемирной паутины (W3C) , в которой прописано, что теги для HTML необходимо выделять ДВОЙНЫМИ кавычками, а если теги HTML, которые находятся внутри echo двойными, но сам echo одинарным. Вот пример:
<?php
echo '<input type="text" name="beer" value="">';

Теперь мы не нарушили стандарты.

Правило №4:

Теперь одно из главных правил, вывод текста и вывод переменных необходимо разделять! Есть 2 стандартных способа:
<?php
echo 'Привет '.$user.', как дела';
echo "Привет {$user}, как дела";

То есть в первом способе у нас закрывается кавычка и каждую логическую часть разделяем точкой. Так как, как если бы нам надо было вывести 2 переменных: echo $a.$b; Второй вариант - это брать в фигурные скобки, который хуже. Есть места, где они не работают (в регулярных выражениях). Поэтому мы останавливаемся на первом варианте.
<?php
echo '
<form action="" method="post">
<input type="hidden" name="id" value="'.$id.'">
<input type="submit">
';


Альтернатива: используется, когда надо вывести на экран большую часть текста, при этом в ней будет встречаться лишь вывод пары переменных. Нет смысла нагружать систему выводом через echo (так как этот вывод будет более тяжелым, чем обычный вывод без ПХП), поэтому мы напишем по другому. Давайте рассмотрим пример, когда выводится форма, если отсутствует конкретная переменная или она пустая):
<?php
if(empty($a)) {
?>
<form action="" method="post">
<input type="text" name="name">
ТУТ много других инпутов.
<input type="hidden" name="id" value="<?phpecho $a; ?>">
<input type="submit">
</form>
<?php } // закрываем условие
?>
Главная БАЗОВЫЙ КУРС ПЕРВЫЙ УРОВЕНЬ программирования ВТОРОЙ УРОВЕНЬ верстки ВТОРОЙ УРОВЕНЬ программирования Начать обучение Запуск проекта Мелкие трюки Делимся практикой трудоустройства Проверь свои знания Задачи по PHP MySQL Блог Отзывы