Рассмотрим простую функцию, преобразующую буквы чьих-нибудь полных имен в нижний регистр, а затем переводящую в верхний регистр первую букву каждого имени. Встроенная РНР-функция strtoupper. Для нашей текущей функции будет использована ее противоположность - функция strtolower: $lowered = strtolower ("люБОЕ нУжное Вам количество Букв и Знаков Пунктуации"); echo $lowered;
На выходе этого эксперимента получается следующая строка: любое нужное ваи количество букв и знаков пунктуации Но нам не нужны имена, полностью состоящие из букв нижнего регистра, мы хотим, чтобы первые буквы были превращены в прописные. (Не будем в этом примере брать в расчет такие редкие имена, как Магу-Аnn или Jo-En-Lai.) Нам и здесь сопутствует удача: PHP предоставляет также функцию ucfirst, которая переводит первую букву строки в верхний регистр: $ucfixed = ucfirst ("любое нужное вам количество букв и знаков пунктуации"); echo $ucfixed;
На выходе получается следующая строка: Любое нужное ваи количество букв и знаков пунктуации Теперь мы можем внести свою первую лепту в конструирование программы: для того чтобы получить слово с первой прописной буквой, сначала для строки будет вызвана функция зтгто1ower, а затем будет вызвана функция ucfirst. Для этого вызов функции strtolower будет вложен в вызов функции ucfirst. Давайте посмотрим, зачем это делается, потому что нам важно понять порядок вычисления кода. Если воспользоваться следующим простым вызовом функции ргint: print(5-8); то сначала будет вычислено выражение 5-8 и на выходе будет получено число -3. (В предыдущей статьях уже было показано, что PHP для отображения этого результата превращает его в строку.) Если выражение содержит функцию, то эта функция также вычисляется в первую очередь: print(abs(5-8)); Для выполнения этой короткой инструкции PHP совершает следующие действия. 1. Вычисляет 5-8, выдавая результат -3. 2. Использует функцию abs, превращая -3 в 3. 3. Превращает результат в строку и выводит его, используя функцию print. Все это работает благодаря тому, что PHP вычисляет каждый элемент, начиная с самого внутреннего и заканчивая тем, который находится снаружи. То же самое происходит и при обработке следующего вызова: ucfirst(strtolower("люБОЕ, нУжное Вам количество Букв и Знаков Пунктуации" )) PHP передает нашу строку функции strtolower, а затем функции ucfirst, выдавая следующий результат (который мы уже видели, когда вызывали функции отдельно друг от друга): Любое, нужное ваи количество букв и знаков пунктуации Теперь определим функцию (показанную на примере ), которая берет три имени и переводит их буквы в нижний регистр, после чего превращает первую букву в прописную. Приведение в порядок полного ииени ?php echo fix_names ("WILLIAM" , "henry" , "gatES"); function fix_names($n1, $n2, $n3) { $n1 = ucfirst(strtolower($n1)); $n2 = ucfirst(strtolower($n2)); $n3 = ucfirst(strtolower($n3)); return $n1 . "" . $n2 . "" . $n3; } ?>
Пользователи часто забывают вовремя выключить режим Caps Lock, случайно ставят прописные буквы не там, где нужно, и даже вообще забывают о них, от чего вы тоже не застрахованы. В результате выполнения кода этого примера будет выведен следующий текст: William Henry Gates
|