Любая причина, почему кто-то использовал бы printf () почти для всего? - PullRequest
0 голосов
/ 29 ноября 2011

Я беру проект от существующего программиста, который, если честно, оставил проект в огромной куче неразрешимого, нечитаемого беспорядка ( редактирование / уточнение: десятки на десятках автономных .php страниц это суп из php / html / css, который ссылается на один гигантский 1500-строчный файл 'functions.php', ack)

При этом кажется, что почти везде есть переменные, массивы и т. Д. Он использовал printf ().

Например, вместо использования:

foreach($thing as $t) {
    echo "<option value='".$t."'>".$t."</option>";
}

Он использовал бы что-то вроде:

foreach($thing as $t) {
     printf("<option value='%s'>%s</option>", $t, $t);
}

Кто-нибудь знает, почему именно он это сделает? Есть ли какое-то неизвестное преимущество, о котором я не знаю, используя printf () вместо echo / print?

Обратите внимание, что это не только для значений, которые могут нуждаться в проверке / очистке, но и для ВСЕГО. Данные извлекаются из базы данных, случайных величин и массивов, которые были определены в другом месте, абсолютно все это printf () вместо просто echo или print, и я пытаюсь выяснить, почему он использовал бы этот метод, поскольку он мог бы помочь мне понять логику за некоторыми из вещей, которые он построил.

Ответы [ 3 ]

5 голосов
/ 29 ноября 2011

"Единственная причина использовать printf () в предпочтении перед echo или print () в том, что вы будете использовать функцию заполнителей строки формата с дополнительными аргументами (по одному для каждого такого заполнителя). Если нет, то print () будет быстрее, и эхо даже (очень немного) быстрее, так как оно не генерирует возвращаемое значение. "

Найдено здесь: эхо VS printf

4 голосов
/ 29 ноября 2011

Я предполагаю, что он сделал это для способности чтения кода. Я думаю, что использование printf / sprintf более читабельно, чем встраивание переменных непосредственно в строку и чередование '"""''""''".

Лично я думаю, что это самый читаемый метод:

<?php foreach($thing as $t): ?>
     <option value="<?php echo $t ?>"><?php echo $t ?></option>
<?php endforeach; ?>

В большинстве сред IDE есть дополнительное преимущество:

2 голосов
/ 29 ноября 2011

Ну, я бы определенно использовал printf в вашем примере.Я часто использую printf, sprintf или strtr при выводе html-элементов с большим количеством атрибутов или сложных.Это просто более читабельно и гораздо проще поменять значения позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...