День добрый, перечитываю "Стандарт кодирования на PHP в Zend Framework'е". В частности, решил сделать эксперимент на тему "Что лучше: подстановка переменной или конкатенация?" PHP: <?php $var = 'World'; $time = microtime (true); for ($i = 0; $i < 10000000; $i++) { $string = "Hello, {$var}!"; } echo microtime (true) - $time; echo '<br>'; $time = microtime (true); for ($i = 0; $i < 10000000; $i++) { $string = 'Hello, ' . $var . '!'; } echo microtime (true) - $time; . Результаты оказались примерно одинаковы. Сам я предпочитаю подстановку не использовать, а конкатенацию. У кого какое мнение по этому поводу. Все-таки как лучше?
по идее конкатенация лучше - более гибко, однако я больше предпочитаю подстановку - смотрится в строке симпатичнее PHP: <?php $query = "SELECT * FROM {$table} WHERE id={$id}"; ?>
Gromo, в запросах поддерживаю, ибо когда есть запрос на строчек пять, к примеру, то читабельность его очень падает. Я бы сказал даже, что если в строке производится массовая подстановка, то конкатенация будет нарушать читабельность кода и вероятно в таких случаях уместно использовать именно подстановку. Если посмотреть в строну PDO, фреймворков, то там в тех же запросах к БД, зачастую, подстановка в явном виде будет отсутствовать из-за подготовки запросов, если я правильно понял...
Mr. T Если работаешь в команде - используй то, что использует команда Если работаешь сам - то по барабану, что ты используешь
Mr. T я использую и подстановку, и конкатенацию - в зависимости от того, что мне нужно получить. необходимость производить конкатенацию возникает в случаях, когда используются выражения или функции пхп - там уже подстановкой не обойтись с SQL запросами немного проще - я использую свою библиотеку для работы с БД, где в запросе подаются данные в виде $query = "SELECT * FROM {table} WHERE id={id}"; и затем уже подаю ассоциативный массив что на что заменять; а данные экранируются автоматически внутри запроса.