Что делает метод empty (), когда мы реализуем интерфейс ArrayAccess в php?

Я новичок в php и учусь на php.net. нота говорит по следующей ссылке, что:

При использовании empty () будет вызываться и проверяться ArrayAccess :: offsetGet (), если он пуст, только если ArrayAccess :: offsetExists () возвращается ПРАВДА.

Что это значит?

Ссылка (http://php.net/manual/en/arrayaccess.offsetexists.php).

1

Решение

Надеюсь, это поможет, слишком много логических комбинаций не всегда помогают, хотя …

empty() используется, чтобы проверить, считается ли значение «пустым», что означает, что оно либо не существует, либо имеет значение false (http://php.net/manual/en/function.empty.php).

Чтобы иметь возможность проверить это в классе, реализующем ArrayAccess (например, в классе, который разрешает доступ к типу массива — используя []), это означает, что в этом процессе есть два этапа.

Во-первых — существует ли элемент. Это делается по телефону offsetExists() с элементом, который вы проверяете. Так с $data = [1,2];и вы проверяете элемент 2, offsetExists() вернет false (только 0 и 1 имеют значения) — что empty() вернет true — поскольку условие 1 (элемент не существует) выполняется. Вызывается для элемента 1, который существует, empty() вернет ложь (http://php.net/manual/en/arrayaccess.offsetexists.php).

Во-вторых, если элемент существует, вторая часть empty() говорит, что он также считается пустым, если значение равно false. offsetGet() извлечет значение из тестируемого элемента. Так $data[true,false], когда offsetGet() вызывается для элемента 0, он вернет значение в позиции 0, которое является значением true. Условие 2 говорит, если значение ложно, что в данном случае не так, и поэтому empty() вернет ложь. Но вызывается для элемента 1, который имеет значение false, empty() вернет истину.

0

Другие решения

Других решений пока нет …