Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
действует принцип: чем меньше в про- 

грамме собственноручно реализованных функций, тем надежнее она будет работать и 

тем меньше ее придется тестировать. 


ЧАСТЬ IV. 
СТАНДАРТНЫЕ 
ФУНКЦИИ PHP 


Глава 12 
Строковые функции 
Строки в PHP — одни из самых универсальных объектов. Как мы уже видели, любой, 
сколь угодно сложный объект можно упаковать в строку при помощи функции 
Serialize() (и обратно через Unserialize()). Строка может содержать абсолют- 
но любые символы с кодами от 0 до 255 включительно. Нет никакого специального 
маркера "конца строки", как это сделано в Си (там конец строки помечается 
симво- 
лом с нулевым кодом). А значит, длина строки во внутреннем представлении PHP 
хранится где-то отдельно. Для формирования и вставки непечатаемого символа в 
строку (например, с кодом 1 или 15) используется функция chr(), которую мы рас- 

смотрим ниже. 
Наконец, из-за слабого контроля типов в PHP строка может содержать 
(и часто содержит) число, причем с ней можно работать, как с числом: прибавлять 

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

представление, и наоборот. Их мы обсудим позже, в следующей главе. 
В этой главе я описываю только самые употребительные и удобные функции 
(около 80%), пропуская все остальные. Какие-то из не вошедших в данную гла- 
ву функций (например, quotemeta()) мы будем рассматривать в других гла- 
вах — там, где это показалось мне наиболее логичным. Так что, не найдя опи- 
сание интересующей вас функции здесь, подумайте: возможно, оно лучше 
подходит для другой темы и его лучше поискать там? И, наконец, последней 
инстанцией для вас, конечно же, должна являться документация PHP. 
Конкатенация строк 
Самая, пожалуй, распространенная операция со строками — это их конкатенация, 
или присоединение к одной строке другой. В ранних версиях PHP для этого, как и 
для 
сложения чисел, использовался оператор +, что постоянно приводило к путанице: 
ес- 
ли к числу прибавляется строка, что должно получиться — число или строка? Если 
число, то вдруг наша строка содержала на самом деле не число, а какой-то текст? 
В 
новой — третьей — версии интерпретатора разработчики отказались от этого меха- 
низма и объявили, что + следует применять только для сложения чисел, и никак 
ина- 

Глава 12. Строковые функции 207 
че. Что же касается конкатенации строк, то для нее ввели специальный оператор ".
" 
(точка). 
Оператор "." всегда воспринимает свои операнды как строки и возвращает строку. 
В 
случае, если один из операндов не может быть переведен в строковое 
представление, 
т. е. если это массив или объект, то он воспринимается как строки array и 
object 
соответственно. Вообще говоря, это правило применимо и не только при сцеплении 
строк, но и при передаче такого операнда в какую-нибудь стандартную функцию, 
ко- 
торой требуется строка. Например, следующие команды выведут слово array: 
$a=array(10,20,30); 
echo $a // Внимание! Неожиданный результат! 
Есть и другой, более специализированный, способ конкатенации строк. Он обычно 
используется, когда значения строковых или числовых переменных перемежаются с 
обычными словами. Если, к примеру, у нас в $day хранится текущее число, в 
$month — название месяца и в $year — год, то вывести строку вида "Сегодня 8 мая 

2000 года" можно так: 
echo "Сегодня $day $month $year года"; 
При этом в строку, вырабатываемую инструкцией echo, автоматически в нужных 
местах вставятся значения наших переменных. Это позволяет констатировать тот 
факт, что в PHP все переменные начинаются с $. 
О сравнении строк 
и инструкции if-else 
Теперь я хотел бы рассмотреть одно тонкое место в интерпретаторе PHP, 
касающееся 
немного неправильной работы со строками. Заключается оно вот в чем. Если мы ис- 

пользуем операторы сравнения == и != (или любые другие, которые могут потребо- 
вать перевода строки в число) с операндами-строками, то результат, вопреки 
ожида- 
ниям, не всегда оказывается верным. Чаще всего э
 
<<-[Весь Текст]
Страница: из 287
 <<-