Чувствительность к регистру

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

Один из тонких, но очень важных моментов в PHP — это чувствительность к регистру. Проще говоря, для языка `$name` и `$Name` — это одно и то же или две совершенно разные вещи? Ответ зависит от того, о чем именно идет речь. В PHP некоторые части языка чувствительны к регистру, а другие — нет.

Например, имена переменных всегда чувствительны к регистру. Это одно из самых строгих правил, и его нарушение — частая причина ошибок у начинающих. С другой стороны, имена функций, классов и встроенных конструкций (`echo`, `if`, `while`) к регистру не чувствительны. Вы можете написать `echo`, `ECHO` или даже `eChO` — и все будет работать одинаково.

Этот урок поможет вам разобраться в этих правилах раз и навсегда. Мы на практических примерах разберем, где регистр важен, а где его можно игнорировать, и научимся избегать типичных ошибок.

Список тем

Ошибка в имени переменной

id: 38907_task_1

В этом коде объявлена одна переменная, а при выводе делается попытка обратиться к другой. Найдите строку с ошибкой и исправьте регистр символов в имени переменной, чтобы скрипт вывел "Alice".

Найдите ошибку и исправьте
<?php
    $Username = "Alice";
    echo $username;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Регистр в именах функций

id: 38907_task_2

В отличие от переменных, имена функций в PHP не чувствительны к регистру. Что выведет этот код, в котором функция `strtoupper` (преобразование строки в верхний регистр) вызвана как `STRTOUPPER`?

Выберите правильный вариант ответа
<?php
    $text = "hello";
    echo STRTOUPPER($text);
?>
Сообщения
Проверить
Показать подсказку

Две разные переменные

id: 38907_task_3

Здесь объявлены две переменные, имена которых отличаются только регистром первой буквы. Что выведет этот скрипт? Впишите точный результат в поле ответа.

Что должно получиться?
<?php
    $message = "I am a lowercase message.";
    $Message = "I am an UPPERCASE message.";
    
    echo $Message;
?>
Сообщения
Проверить
Показать подсказку

Распредели по правилам

id: 38907_task_4

Перед вами различные элементы языка PHP. Распределите их по двум категориям в зависимости от того, чувствительны они к регистру или нет.

Перетяните элементы в соответствующие блоки
Чувствительны к регистру
Не чувствительны к регистру
Имя переменной ($name)
Имя функции (my_func())
Ключевое слово (while)
Имя класса (User)
Ключ в массиве ('key')
Сообщения
Проверить
Показать подсказку

Регистр в ключах массива

id: 38907_task_5

Ключи в массивах, как и переменные, чувствительны к регистру. В коде допущена ошибка при доступе к элементу массива. Исправьте ее, чтобы на экран вывелось "developer".

Найдите ошибку и исправьте
<?php
    $user = ['name' => 'John', 'role' => 'developer'];
    echo $user['Role'];
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Конструкции языка и регистр

id: 38907_task_6

Языковые конструкции, такие как `echo` или `if`, не чувствительны к регистру. Заполните пропуск так, чтобы код работал, используя `echo` в необычном регистре.

Заполните пропуски
<?php
    $value = 100;
    input1S $value;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Смешанные правила

id: 38907_task_7

В этом задании вам нужно применить оба правила сразу. Заполните пропуски, выбрав правильные элементы из банка: имя функции (нечувствительно к регистру) и имя переменной (чувствительно к регистру).

Нужно правильно расставить в пропуски предложенные варианты
<?php
    $Numbers = [10, 20, 30];
    echo "Count: " . input1S(input2S);
?>
$Numbers
$numbers
count
COUNT
sizeOf
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Константы и регистр

id: 38907_task_8

По умолчанию константы, созданные через `define()`, чувствительны к регистру. Что произойдет при попытке вывести константу, используя имя в нижнем регистре?

Выберите правильный вариант ответа
<?php
    define('VERSION', '1.0');
    echo version;
?>
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру