Подскажите как это называется и где подробнее про это почитать. Вот кусок кода: PHP: $instagram = new Instagram();Instagram::setProxy([ 'address' => '111.112.113.114', 'port' => '8080', 'tunnel' => true, 'timeout' => 30,]);// Request with proxy$account = $instagram->getAccount('kevin');Instagram::disableProxy();// Request without proxy$account = $instagram->getAccount('kevin'); Каким образом вызов статических методов класса влияет на созданный объект?
Ответ, если кратко "Статические методы используются тогда, когда надо повлиять, грубо говоря, одновременно на все объекты."
А вот и нет. Статические методы это методы которые могут быть вызваны без создания экземпляра класса - объекта.
Так это ж глобальные методы, а вопрос про статические Статические методы предопределены, их не переопределяют в процессе выполнения программы. Spoiler: Статические методы
чтобы метод нельзя было переопределить он должен быть помечен как final, а не быть статическим. а так через рефлексию можно даже private метод сделать доступным при желании
Чет я все обсуждение пропустил. Все правы, только о разных смыслах. Я, в начале, как раз хотел понять именно вот это: Я не знал этого свойства статических методов и свойств
вот хороший щаблон(паттерн) для того чтобы понять зачем правильно использовать статические методы. singleton. иногда через этот паттерн делают подключение к базе данных чтобы гарантировано иметь только одно подключение по ссылке https://refactoring.guru/ru/design-patterns/php можно узнать больше <?php declare(strict_types=1); namespace DesignPatterns\Creational\Singleton; final class Singleton { private static ?Singleton $instance = null; /** * gets the instance via lazy initialization (created on first usage) */ public static function getInstance(): Singleton { if (static::$instance === null) { static::$instance = new static(); } return static::$instance; } /** * is not allowed to call from outside to prevent from creating multiple instances, * to use the singleton, you have to obtain the instance from Singleton::getInstance() instead */ private function __construct() { } /** * prevent the instance from being cloned (which would create a second instance of it) */ private function __clone() { } /** * prevent from being unserialized (which would create a second instance of it) */ private function __wakeup() { } }