Строки в РНР

Как и большинство других языков, РНР определяет строки как последовательности символов. Важно понимать, что понятие “символа” не ограничено только теми символами, которыми люди пользуются каждый день, — буквами алфавита, десятичными цифрами и знаками пунктуации. Смысл, ассоциируемый с понятием “символ”, означает только один байт данных. В зависимости от того, как этот байт используется, он может быть буквой, точкой растрового изображения и даже частью звуковой дорожки в формате МРЗ.
Поскольку символ представлен одним байтом данных, встроенные строки РНР способны хранить только до 256 разных значений каждого символа. Некоторые язы- ки, например, китайский и японский, имеют более чем 256 символов, и, следовательно, не могут быть представлены обычными строками в РНР. К счастью, РНР обеспечивает набор многобайтных строковых функций (MBString), которые могут иметь дело с такими языками, используя специальные символы.
Скорость и эффективность строковых выражений
Три строковых нотации, которые были рассмотрены до сих пор, представляют различный уровень производительности.
Несмотря на невысокую вероятность того, что производительность вашего приложения снизится из-за строковых выражений, вы можете столкнуться с другими, более серьезными проблемами, а поэтому нужно знать, что самый быстрый способ объявления строк — использование одиночных кавычек, поскольку в этом случае интерпретатору не потребуется сканировать строку и выполнять необходимые подстановки (исключая\г и\\).
Синтаксис с двойными кавычками медленнее, так как все строчное выражение, заключенное в них, должно подвергаться сканированию и подстановкам переменных внутри него. И, наконец, синтаксис “heredoc” является наиболее медленным, потому что помимо операций сканирования для поиска подстановок и специальных символов, интерпретатор также должен заботиться о поиске вашего разделителя.

Tags: , ,

Related posts


Leave a Reply