Articles of static

$ var :: staticfunction () ОК, но $ this-> var :: staticfunction () NOT. В чем смысл?

В PHP может быть доступен статический член или функция, если имя класса является допустимым объектом или строкой. Это в основном верно. Когда строка имени класса является свойством объекта, его нельзя использовать напрямую. Он должен быть скопирован в простую переменную, прежде чем ее можно будет использовать для доступа к статическому члену. Вот пример: class Foo { […]

Используя $ this внутри статических методов и методов, вызываемых этим методом

Как использовать $this->var1 внутри метода, который вызывается из статического метода? У меня есть этот метод: static public function getModuleConfigInputfields(array $data) { $fields = new InputfieldWrapper(); $modules = Wire::getFuel('modules'); $field = $modules->get("InputfieldText"); $field->attr('name+id', 'apiKey'); $field->attr('value', $data['apiKey']); $field->label = "API Key (Developer Key)"; $field->description = 'Enter the API key'; $fields->append($field); $field = $modules->get("InputfieldSelect"); $field->attr('name+id', 'list_id'); $mailing_lists = […]

Вызов статического метода не статически

Я наткнулся на что-то вроде этого, и я не уверен, что это сделать. Есть ли веские основания для этого или избежать этого? class Foo { static public function bar() {} } someMethod() { $instanceOfFoo->bar(); }

PHP статический не очень статический

Я заметил, что ключевое слово static в PHP не совсем static . Допустим, Elmo – мой синглтон: class Elmo { private static $instance; private function __construct() { echo 'Elmo says constructor\n'; } public static function getInstance() { if (!isset(self::$instance)) self::$instance = new Elmo(); return self::$instance; } public function boo() { echo 'Elmo says boo!\n'; } […]

Почему PHP назначает контекст вызову статического метода и не дает уведомления E_STRICT?

Я натолкнулся на очень странное поведение на PHP5.4 (также присутствует в 5.5). В принципе, я вызываю нестатический метод статически, и я не получаю ошибку E_STRICT, где я определенно должен ее получить. <?php error_reporting(E_ALL); class A { public function iAmNotStatic() {} } Теперь, если я это сделаю: A::iAmNotStatic(); Затем я получаю ошибку, как ожидалось. Strict standards: […]

делать расширенные классы наследуют статические значения var (PHP)?

Если у меня есть базовый класс, содержащий статический var, тогда я устанавливаю этот статический var, а затем должен иметь класс, который расширяет базовый класс, будет ли расширенный класс сохранять значение статического var, которое я уже установил в базовом классе ?

Есть ли проблемы с использованием ключевого слова static в простой PHP-функции?

Например: <?php function get_current_user_id(){ static $id; if(!$id){ $id = 5; echo "Id set."; } return $id; } $id = get_current_user_id(); $id2 = get_current_user_id(); $id3 = get_current_user_id(); echo "IDs: ".$id." ".$id2." ".$id3; ?> // Выход: Id set.IDs: 5 5 5 http://codepad.org/jg2FR5ky Таким образом, предположительно повторяющиеся вызовы для получения идентификатора пользователя просто выполняют простой возврат идентификатора, все […]

Почему мы должны использовать статические вызовы в PHP?

Почему мы должны использовать статические переменные или статические вызовы для статических методов в PHP5? Может быть, улучшить производительность?

PHP Static vs Instance

Я как раз собираюсь написать метод преобразования некоторых биллинговых данных в счет-фактуру. Так что скажите, что у меня есть и массив объектов, содержащих данные, необходимые для создания элементов invocie. В контроллере биллинга Какой из следующих способов правильный $invoice = new Invoice(); $invoice->createInvoiceFromBilling($billingItems); Затем в классе счетов Public Function createInvoiceFromBilling($billingItems) { $this->data = $billingItems; ИЛИ Invoice::createInvoiceFromBilling($billingItems) […]

Доступ к частной переменной из статической функции в php

У меня есть приватная переменная в моем классе private $noms = array( "HANNY", "SYS", "NALINE" ); Я хочу получить доступ к нему из статического метода: public static function howManyNom($searchValue){ $ar = $this->noms; foreach($ar as $key => $value) { … Но, как обычно, я не могу получить его с помощью $ this, потому что нет никакого […]