Страница 2 из 9 21. Неоправданное использование функции printf() Функция printf() предназначена для вывода форматированных данных. Например, ее следует использовать при необходимости вывода переменной в формате с плавающей запятой с определенной точностью, либо в любом другом случае, когда возникает необходимость изменения формата выводимых данных. Ниже приведен пример обоснованного применения функции printf(). В данном случае она используется для форматированного вывода числа "пи": <?php
printf ("Число Пи: %2f\n<br>\n", M_PI); printf ("Это тоже число Пи: %3f\n<br>\n", M_PI); printf ("И это Пи: %4f\n<br>\n", M_PI);
?> Примечание: Наблюдаются случаи патологической боязни функции printf(), когда люди пишут свои функции форматированного вывода, порой по 30-40 строк, хотя все проблемы мог бы решить один-единственный вызов функции printf(). Многие программисты используют функцию printf() для вывода переменных, результатов вызова функций, а иногда даже обычных текстовых данных. Наиболее часто это происходит в следующих двух случаях: - когда следовало бы использовать функцию print();
- при выводе результатов, возвращаемых функциями.
Когда следует использовать print() Вызов функции printf() зачастую используется там, где следовало бы использовать print(). В следующем примере функция printf() используется для вывода четырех переменных: <?php
$name = 'Sterling Hughes'; $job = 'Senior Engineer'; $company = 'DesignMultimedia'; $email = '
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
';
printf ( "Меня зовут %s\n<br>\n Я работаю %s, %s\n<br>\n Мой адрес E-mail:%s\n<br>\n", $name, $job, $company, $email ); ?>В данном случае возможно (и желательно!) применение print(): print "Меня зовут $name\n<br>\n Я работаю в $company, $job\n<br>\n Мой адрес E-mail: $email\n<br>\n";Использование print() вместо printf() в случаях, когда выводятся неформатированные данные, как в данном примере, дает следующие выгоды: - Увеличение производительности: Функция printf() форматирует свои аргументы перед выводом. Таким образом, время ее выполнения больше, чем для функций print() или echo().
- Более ясный код: Все-таки надо признать, что использование функции printf() затрудняет чтение кода (имеющих достаточный опыт программирования на C это, конечно, касается в меньшей степени). Чтобы функция printf() не повела себя самым неожиданным для вас образом, требуется как знание синтаксиса данной функции, (т.е. %s определяет строковый формат вывода, тогда как %d - десятичный), так и знание типов переменных.
Использование функции printf() для вывода значения, возвращаемого функцией Еще одна характерная ошибка использования функции printf() - вывод значения, возвращаемого функцией, как в следующем примере: <?php
printf ("Найдено %d вхождений строки %s", count ($result), $search_term);
?>Наряду с функцией print() при использовании ее в тех же целях, следует использовать оператор "." В данном случае этот оператор добавляет текст к результату вызова функции: <?php
print "Найдено " . count ($result) . " вхождений строки $search_term";
?>Использование оператора . в паре с функцией print() позволяет избежать использования более медленной функции printf(). |