Преобразование первых букв в заглавные(верхний регистр) - PHP. Функции изменения регистра Php функция преобразования строки в верхний регистр
В PHP переменные и константные имена чувствительны к регистру, а имена функций – нет.
Насколько мне известно, PHP – это единственный язык, на котором это происходит. Все остальные языки, которые я использовал, либо полностью чувствительны к регистру, либо полностью нечувствительны к регистру.
Почему PHP частично относится к senstive?
Обратите внимание, что я не спрашиваю, какие имена чувствительны к регистру, но почему .
С учетом регистра
- переменные
- константы
- клавиши массива
- свойства класса
- константы класса
Нечувствительность к регистру (как определено пользователем, так и PHP)
- функции
- конструкторы классов
- методы класса
- ключевые слова и конструкции (if, else, null, foreach, echo и т. д.)
основы
Переменные в PHP представлены знаком доллара, за которым следует имя переменной. Имя переменной чувствительно к регистру.
Имена переменных следуют тем же правилам, что и другие метки в PHP. Правильное имя переменной начинается с буквы или подчеркивания, за которой следует любое количество букв, цифр или символов подчеркивания. В качестве регулярного выражения оно выражается следующим образом: "*"
- Руководство пользователя для пользователей
- Почему функции и методы в PHP нечувствительны к регистру?
- Являются ли функции PHP чувствительными к регистру?
- Являются ли ключевые слова PHP чувствительными к регистру?
- Являются ли имена функций PHP чувствительными к регистру или нет?
- Источник чувствительности к PHP
Деликатный случай
переменные, константы, ключи массива, свойства класса, константы класса
Без учета регистра
функции, конструкторы классов, методы класса, ключевые слова и конструкции (if, else, null, foreach, echo и т. д.),
Для имен файлов:
Обратите внимание, что чувствительность к регистру также зависит от вашей среды.
Когда вы разрабатываете что-то на своем WAMP или XAMPP это будет нечувствительным к регистру, когда вы перейдете на сервер Linux он будет вызывать ошибку.
Почему PHP частично относится к senstive?
Я могу только предположить, что это связано с очень ранними версиями, возможно, с PHP / FI 2.0. В руководстве явно указано:
Имейте в виду, что имена функций PHP / FI не чувствительны к регистру.
Большинство пользовательских данных, таких как параметры GET и POST, всегда были зарегистрированы как глобальные переменные. Рассмотрение этих вопросов как нечувствительных к регистру, вероятно, вызвало бы проблемы, и, предположительно, поэтому все переменные рассматривались как чувствительные к регистру.
Из того, что я могу сказать, это были единственные типы идентификаторов в PHP / FI 2.0. Все остальные были представлены позже, видимо, имитируя имена функций, не учитывающих регистр.
Константы, которые являются особыми, были введены только с PHP 4 (руководство PHP 3 упоминает «константы», но в настоящее время они называются «литералами»). По какой-то загадочной причине (возможно, консенсуса не удалось найти) было принято решение разрешить постоянным идентификаторам define() d либо чувствительным к регистру, либо нечувствительным к отклонению разработчиков. Интересно отметить, что в то время как define() умолчанию использует чувствительные к регистру константы, соответствующие C-копии (REGISTER_*_CONSTANT) по умолчанию нечувствительны к регистру.
PHP хорош многообразием нативных функций языка. Однако, в некоторых случаях приходится дописывать недостающий функционал. Особенно это заметно при работе с функциями преобразования строк и различными кодировками.
Например, ucfirst - функция, которая преобразовывает первый символ строки в верхний регистр. Казалось бы, не должно возникнуть никаких проблем, но при работе с кириллицей такого преобразования не происходит. Это касается и функции ucwords - преобразует в верхний регистр первый символ каждого слова в строке.
С символами анг.алфавита проблем не возникает:
"; //преобразует в верхний регистр первый символ каждого слова в строке echo ucwords($str); ?>
Test string Test String
Но с кириллицей возникают проблемы:
"; //преобразует в верхний регистр первый символ каждого слова в строке echo ucwords($str); ?>
Тестовая строка тестовая строка
Для PHP типичны случаи, когда функции "плохо" или вообще не работают с кириллицей. Некоторые функции с приставкой mb решают проблемы с кириллицей. Например, mb_strtolower - приведение строки к нижнему регистру. В отличие от strtolower(), то что символ является буквой определяется на основании свойств символа Юникода.
Для решения проблемы определим функцию mb_ucfirst(string str [, string encoding]), которая будет обрабатывать символы Юникода.
Для преобразует в верхний регистр первый символ каждого слова в строке достаточно использовать mb_convert_case в режиме MB_CASE_TITLE.
Функции изменения регистра
strtolower
Производит преобразование символов строки в нижний регистр.
Синтаксис:
string strtolower(string str);
Преобразует строку в нижний регистр. Возвращает результат перевода.
Надо заметить, что при неправильной настройке локали функция будет выдавать, мягко говоря, странные результаты при работе с буквами кириллицы.
$str = "HeLLo World";
$str = strtolower($str);
// выведет hello world
strtoupper
Производит преобразование заданной строки в верхний регистр.
Синтаксис:
string strtoupper(string str);
Переводит строку в верхний регистр. Возвращает результат преобразования. Эта функция хорошо работает с английскими буквами, но с русскими может чудить.
$str = "Hello World";
$str = strtoupper($str);
// выведет HELLO WORLD
Производит преобразование первого символа строки в верхний регистр.
Синтаксис:
string ucfirst(string str);
Возвращает строку, у которой первый символ заглавный.
$str = "hello world";
$str = ucfirst($str);
// выведет Hello world
Производит преобразование первого символа каждого слова строки в верхний регистр.
Синтаксис:
string ucwords(string str);
Возвращает строку, у которой первый символ каждого слова в строке заглавный.
Под словом здесь понимается участок строки, которому предшествует пробельный символ: пробел, переход на новую строку, прогонка страницы, возврат каретки, горизонтальная и вертикальная табуляция.
Символы кириллицы могут быть неправильно конвертированы.
$str = "hello world";
$str = ucfirst($str);
// выведет Hello World
Из книги Энциклопедия разработчика модулей ядра Linux автора Померанц Ори Из книги Человеческий фактор в программировании автора Константин Ларри Л54 Агенты изменения Одна рыба, сделав правильное движение в нужный момент, может изменить курс всего косяка. В группе, разрабатывающей программное обеспечение, успешность введения нового инструмента или улучшенного метода управления версиями часто зависит от
Из книги Эффективное использование STL автора Мейерс СкоттСовет 35. Реализуйте простые сравнения строк без учета регистра символов с использованием mismatch или lexicographical_compare Один из вопросов, часто задаваемых новичками в STL - «Как в STL сравниваются строки без учета регистра символов?» Простота этого вопроса обманчива. Сравнения
Из книги Основы объектно-ориентированного программирования автора Мейер БертранСравнение строк без учета регистра символов Мэтт ОстернЕсли вам когда-либо доводилось писать программы, в которых используются строки (а кому, спрашивается, не доводилось?), скорее всего, вы встречались с типичной ситуацией - две строки, различающиеся только регистром
Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М Из книги Технология XSLT автора Валиков Алексей НиколаевичИзменения и постоянство Разработка ПО, как уже упоминалось, во многом связана с повторяемостью. Для понимания технической трудности повторного использования, следует понять природу повторяемости. Несмотря на то, что программисты обычно время от времени повторяют одни и
Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.11.8.2 Перемещения и изменения Что произойдет, если пользователь переместит компьютер в другое место, подключив его к иной сети или подсети? Во время загрузки компьютер, использующий DHCP, автоматически изменит свой IP-адрес и маску подсети, а также при необходимости -
Из книги C++. Сборник рецептов автора Диггинс Кристофер22.10.3 Изменения в DNS Новый тип записи о ресурсе, AAAA, отображает имена доменов в адреса IP версии 6. Пример такой записи:MICKEY IN AAAA 4321:0:1:2:3:4:567:89ABДолжен быть обеспечен и обратный просмотр. Для преобразования адресов в имена для IPv6 потребуется добавить новые домены. Обратный поиск
Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид Из книги Офисный компьютер для женщин автора Пастернак ЕвгенияИзменения в XPath 2.0 Разрабатываемая версия языка XPath, вследствие интеграции с XQuery, очевидно, претерпит серьезные изменения. Новая спецификация уже сейчас разбита на два документа: документ, описывающий модель данных и документ, описывающий функции и операторы. Поэтому на
Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь11.7.2. Изменения в коде Как только в parseCommand() будут правильно отражены структуры данных, то запуск команд в правильном порядке становится довольно простым при достаточном внимании к деталям. Прежде всего, мы добавляем цикл в parseCommand() для запуска дочерних процессов,
Из книги автора4.13. Выполнение сравнения строк без учета регистра ПроблемаИмеются две строки и требуется узнать, не равны ли они, не учитывая регистр их символов. Например, «cat» не равно «dog», но «Cat» должна быть равна «cat», «CAT» или «caT».РешениеСравните строки, используя стандартный
Из книги автора4.14. Выполнение поиска строк без учета регистра
ПроблемаТребуется найти в строке подстроку, не учитывая разницу в регистре.РешениеИспользуйте стандартные алгоритмы transform и search, определенные в
8.1.8. Игнорирование регистра символов По умолчанию команда grep чувствительна к изменению регистра символов. Чтобы провести поиск без учета регистра, воспользуйтесь опцией -i. В файле data.f обозначение месяца Sept встречается как в верхнем, так и в нижнем регистре. Поэтому для
Из книги автораИзменения Если изменений в документе много, удобно пользоваться этой группой кнопок.Например, вы видите исправление, и вы с ним согласны. Ставите в него курсор и нажимаете кнопку Принять. Выделение исправления пропадает, и оно органично вписывается в ваш текст.У этой
Из книги автораНазначение имен тегов и атрибутов зависит от регистра В документах HTML имена тегов и атрибутов не зависят от регистра символов, так что, например, запись