Где грань между созданием экземпляра объекта (new Class()) и использованием оператора разрешения области видимости (::)? Много читал материала, но так и не понял (возможно тупенький). В каких случаях следует создавать экземпляр объекта, а в каких случаях хватит разрешения видимости ::.
Прошу объяснить на примере класса валидации формы:
Сейчас делаю так.$data = Request::post('text');
// Создать экземпляр формы.
$form = new Form($rules);
$form->validate($data)
if(!$form->isValid()) {
echo $form->error()->msg();
}
Обязательно ли создавать экземпляр? Или можно обойтись статическими методами:$checkForm = Form::validate($rules, $data)
if(!$checkForm) {
echo Form::getError();
}
Единственное что знаю, экземпляр надо создавать тогда, когда он оперирует уникальными данными (привет PDO)
Подскажите. Где эта самая грань между new и ::
Когда нужно, а когда не нужно?
(Вероятнее ответ есть в сети, но я не могу сформулировать запрос)

21 Авг 2019 в 07:04
181 +1
0
Ответы
1

Концепция создания экземпляра объекта (с помощью оператора "new") и использования оператора разрешения области видимости "::" относятся к различным аспектам программирования.

Когда нужно создавать экземпляр объекта (с использованием оператора "new"):

Когда у вас есть класс, который содержит уникальные данные для каждого его экземпляра. Например, если у вас есть класс Form, который содержит правила валидации для конкретной формы, то для каждой формы вам нужно создавать отдельный экземпляр объекта класса Form.

Когда у вас есть методы класса, которые оперируют с данными экземпляра. Например, у класса Form может быть метод validate(), который проверяет данные формы на соответствие правилам валидации.

Когда можно обойтись оператором разрешения области видимости "::":

Когда у вас есть статические методы класса, которые не требуют создания экземпляра объекта. Например, у класса Form может быть статический метод validate(), который принимает правила валидации и данные для проверки.

Если вам не нужно хранить состояние объекта между вызовами методов. Если класс не содержит состояния, которое должно быть сохранено между вызовами методов, то вы можете использовать статические методы.

В вашем примере валидации формы, создание экземпляра объекта класса Form может быть полезным, если у вас есть несколько форм с разными правилами валидации. Однако, если у вас есть только одна форма и вы не храните состояние объекта между вызовами методов, то вы можете обойтись статическим методом класса Form.

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

20 Апр в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир