Intereting Posts
Получить имена таблиц базы данных и распечатать их Ошибка внутреннего сервера Trigger 500 в PHP и отображение страницы с ошибкой Apache Частная система чата MYSQL-запрос ORDERBY и GROUPBY Выберите результаты, которые будут только между сегодняшним днем ​​и 2 днями в будущем. Тип переменной mysqli_stmt_bind_param Автоматическое определение текущего локального времени пользователя с помощью JavaScript или PHP Добавьте 30 секунд к времени с помощью PHP Невозможно получить запрос JSON POST в PHP Электронная почта Php, отправленная с вопросами по темам в Outlook только mysql_insert_id, не возвращает последний вставленный id, когда я помещаю его в функцию Как я могу перенаправить ошибку 404 на пользовательскую страницу 404 с помощью Codeigniter? php imagemagick создает TIFF с черепичной пирамидой Соединение Pdo без имени базы данных? Как запустить скрипт PHP с помощью задачи расписания Windows? Исключение времени Swiftmailer yii2

Первая буква – это номер в строке

Я пытался найти быстрый и простой способ проверить, является ли первая буква в строке числом. Многие функции и методы, которые я видел на SO, кажутся сложнее. Мне интересно, что-то вроде этой работы:

is_numeric($string[0]); 

Более простой способ:

 is_numeric(substr($string, 0, 1)) 

Он решает проблему возможной пустой строки (которая не имеет первого символа), используя substr() . substr() возвращает false в случае пустой строки, а false не распознается как число is_numeric() .

Я не знаю, почему этот ответ удален, но правильный ответ

  preg_match('/^\d/', $string); 

Зачем? Потому что он обеспечивает стандартный способ запроса строк. Обычно вы должны отвечать на многие подобные вопросы в своем приложении:

  • строка начинается с цифры?
  • содержит ли он только цифры?
  • заканчивается ли оно буквой?
  • содержит ли она определенную подстроку?

и т. д. и т. д. Без регулярных выражений вам придется изобретать различную комбинацию строковых функций для каждого случая, в то время как REs предоставляют унифицированный и стандартный интерфейс, который вы просто повторно используете снова и снова. Это похоже на алгебру по сравнению с арифметикой.

Нет, это не сработает. Вы можете получить уведомление « Уведомление: Неинициализированное строковое смещение: 0 ». Чтобы заставить его работать, добавьте strlen() :

 if ( strlen($string) > 0 && is_numeric($string[0]) ) { } 

Да, это чистый способ сделать это, но вместо этого используйте ctype_digit, поскольку он позволяет только номера от 0 до 9 и ничего больше.

Он не будет работать в пустых строках, поэтому вы должны проверить смещение, прежде чем обращаться к нему:

 $result = isset($string[0]) ? is_numeric($string[0]) : false;