[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отличие в написании кода
Страницы: 1, 2, 3
Simples
Не так давно начал изучать php и у меня появился вопрос о корректности написания кода, так как в php можно одну и ту же конструкцию написать различными методами. Отсюда вопрос как это сказывается на качестве кода? И какой метод предпочтительнее. Например:

1)
<div>
<
ul>
<?php foreach ($array as $item )
{
echo ' <li><p>'.$item.'</p></li>';
}
?>
</ul>
</
div>


2)
<div>
<
ul>
<?php foreach ($array as $item):?>
<li><p><?php echo $item?></p></li>
<?php endforeach;?>
</ul>
</
div>
vagrand
Я обычно использую второй вариант, только использую фигурные скобки

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Arh
Второй предпочтительней тем, что лучше читается.
Ты верстаешь шаблон и встраиваешь в него код, если нужно.
Редактор подсвечивает как html так и php.
Только используй сокращения.
<div>
<
ul>
<?foreach ($array as $item):?>
<li><p><?=$item?></p></li>
<?endforeach;?>
</ul>
</
div>


Сразу видны динамические вставки. В шаблонизаторах типа смарти это {}, в твиге {%%} а в php <??>

А первый вариант это каша)


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
casper - gg

<div>
<
ul>
<?php foreach ( $array as $item ) { echo '<li><p>'. $item .'</p></li>'; } ?>
</ul>
</
div>


ни такая уж и каша, если расположить вот так, как выше.

касаемо качества кода, со стороны php или html разницы нет, как написано. Оба варианта рабочие. Ну а со стороны того, кто этот код читает, тот и оценит качество написания. По мне, один из критериев качества - это когда по коду сразу ясен алгоритм выполнения. Что бы код одновременно был кодом и, как бы, комментарием.

ПС Знаки препинания не зря появились в русском, да и в других языках. Вот и в php пробел не такое уж пустое место (не в качестве значения переменной, а в качестве разделительной черты). Так легче информация воспринимается и так легче обнаружить не закрытую скобку и другую подобную мелочь, мне, по крайней мере.
inpost
Simples
Если уж сравнивать, но разница ТОЛЬКО в наличии фигурных скобок или их заменой на альтернативный синтаксис через двоеточие.
<?php foreach($var as $v) { ?>
<li>...</li>
<?php } ?>


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Игорь_Vasinsky
а я нативный + шорттеги
<div>
<
ul>

<?php foreach ($array as $item):?>

<li><p><?=$item?></p></li>

<?php endforeach;?>

</ul>
</
div>


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Arh
casper - gg
inpost
Когда скобок больше одной, глаза начинают ломаться пополам =)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
kristall
Цитата
это когда по коду сразу ясен алгоритм выполнения.

Главное правило: как можно меньше мешать ПХП и ХТМЛ. В идеале, в представлении должны быть только одни <?=$var;?> . На практике это, конечно, недостижимо, но если во вьюхе нужен какой-то алгоритм, ясность которого требуется особо подчёркивать, значит в консерватории нужно что-то менять.

_____________
echo '<pre>',print_r($var, 1);die;

root@server# make love && war
inpost
Arh
{ или :
} или endforeach;

Думаешь разница велика? Мне больше нравится PHP синтаксис, когда вложенность выделяется фигурными скобками:
function {
}

namespace {
}

class
{
}

if() {

}

foreach() {
}


И после этого неожиданно в одном месте написать : вместо привычной { ? Как по мне, так альтернативный синтаксис ЛИЧНО ДЛЯ МЕНЯ хуже.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
inpost
kristall
PHP - некий блок-схема для выполнения определённого действия. Twig, Smarty, PHP - не важно что, важно то, что меняя немного "слово" и "синтаксис" ты получаешь одно и то же, применяешь блок-схему для действия. Тот, кто говорит, что меньше PHP - у него аллергия на PHP, имхо wink.gif Давай будем говорить без аллергии на PHP и скажем коротко - меньше "конструкций", больше чистого HTML.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Arh
inpost
Невелика, но когда в шаблоне несколько закрывающих скобок, начинаешь путаться, конец форыча это или конец условия, и скобку очень легко не заметить (трудно найти), приходится всматриваться и делать это внимательно, что бы не перепутать endif; с endforeach;

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
casper - gg
Arh
kristall
в этом частном случае еще рано говорить о шаблонизаторах, MVC и разделении кода на чистый html и php. Но если автор вопроса пишет все таки шаблон, то все верно.

inpost
Arh
А синтаксис для кого?
if() {
| blabla;
| blabla;
| foreach() {
| | bla
| | bla
| }
}


Благо норм редакторы это всё выделяют и если видишь начало, то глазами видишь и конец блока!

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Arh
inpost
А если начало уже пролисталось наверх и ты видишь только конец? Тебе надо в конце форыча еще одну <?=$var?> вставить, а тут непонятно что за скобки =)
Спор конечно о вкусах, но у endif; есть преимущество в читабельности и шаблонном стиле/привычке типа [code]что то[\code] или <script>что то</script> <?if?>что то <?endif?>

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
inpost
Arh
Ну если ты не будешь верстку сосисками делать на 500-600 строк, а пользоваться нормальным распределением верстки/кода тем же MVC, то страницы почти всегда умещаются в размер экрана, максимум там полтора. Но в любом случае каждому своё. У тебя привычка такая, у меня - такая.
Если бы ввели в PHP:
class;
function;
namespace;
я бы не стал ими пользоваться по той же причине.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.