Основная цель инкапсуляции (области видимости) - убедиться, что вы пишете код, который не может быть взломан. В целом это относится к области видимости, поэтому позвольте мне использовать более простой пример локальной переменной внутри функции:
function xyz ($x) {
$y = 1;
while ($y <= 10) {
$array[] = $y * $x;
$y++;
}
return $array;
}
Цель этой функции - передать число и вернуть массив. Пример кода довольно прост. Чтобы функция xyz () была надежной, вам нужно гарантировать, что она каждый раз делает одно и то же. Так что, если бы кто-то имел возможность изменить это начальное значение массива $ y или $? Или даже $ х? Если бы вы могли сделать это извне функции, вы больше не могли бы гарантировать, что возвращает эта функция.
Вот где сфера (инкапсуляция) вступает в игру. Это способ установки границ, назначения разрешений того, что можно и что нельзя делать с вашими переменными (и функциями, свойствами, методами, объектами), чтобы гарантировать, что часть кода всегда будет делать именно то, что ожидается ,
Возьмем, к примеру, любую встроенную функцию php, например ... strtolower () или preg_match () или ... ну что угодно. Они ожидают, что им будут переданы аргументы, и они возвращают что-то конкретное. Внутри есть переменные, циклы и т. Д. Для ввода и вывода результатов. Если бы вы могли изменить этот материал извне, не было бы никакого способа гарантировать, что strotolower () вернет строку в нижнем регистре, которую вы ей передаете, и это лишает смысла иметь повторно используемый блок кода.
Это не обязательно все, что полезно, когда вы программируете для себя, но когда вы пишете код, который будет использоваться и распространяться многими людьми, особенно при использовании кода, который включает в себя дополнения / плагины и т. Д. ... это бесценно для обеспечения того, чтобы ваш код делал то, что должен, и к нему обращались / использовали / вызывали ожидаемым образом.