Articles of static

$ this em php está vinculado dinamicamente, certo?

Estou tendo um erro que acho que é porque cometi algum tipo de erro em uma refatoração, mas não consigo encontrar documentação quando o $this for vinculado e meu erro pode ser explicado por estar vinculado de forma estática. Pontos extra (na verdade não posso dar-lhe pontos extras) para links para documentação excelente sobre esse […]

Estendendo classs estáticas em PHP – Evitando as variables ​​de compartilhamento para várias classs na class estendida

Parece ter problemas para estender as aulas estáticas em PHP. Código PHP: <?php class InstanceModule { public static $className = 'None'; public static function PrintClassName() { echo self::$className . ' (' . __CLASS__ . ')’; } } class A extends InstanceModule { public static function Construct() { self::$className = “A”; } } class B extends […]

Como envio correio de um site estático .htm para um servidor php em um site diferente?

Atualmente, estou trabalhando em um projeto onde o site é estático e o servidor não possui php instalado ou qualquer outra linguagem lateral do servidor dynamic. Eu reparei em empresas como uservoice que, de alguma forma, obtêm dados de um site estático para seus servidores. Como posso criar um formulário de contato no meu site […]

Normas estritas: método não estático

Estou executando o Ubuntu + PHP 5.4 e recebi tal erro: Normas estritas: método não-estático XTemplate :: I () não deve ser chamado de forma estática, assumindo $ deste contexto incompatível em … na linha 339 E esse método se parece com isto: interface ITemplate { public function I(); } class XTemplate implements ITemplate { […]

(php oop) método estático versus nenhum método estático

Abaixo estão os exemplos de código de class php que é método estático e método não estático. Exemplo 1: class A{ //None Static method function foo(){ if (isset($this)) { echo ‘$this is defined (‘; echo get_class($this); echo “)”; } else { echo “\$this is not defined.”; } } } $a = new A(); $a->foo(); A::foo(); […]

static :: vs. self :: – há alguma desvantagem?

Nesta questão do StackOverflow, eu aprendi que self:: was not aware de inheritance onde static:: was (em PHP). Quando se trata de definir um monte de constantes dentro de uma class, se quiser replace essas constantes em uma subclass para alterar os “comportamentos” padrão, torna-se necessário usar static:: modo que um método na class pai […]

propriedade estática de php

Eu tenho dois trechos de código (em relação à palavra-chave static ) que eu espero que eles tenham o mesmo resultado, mas na verdade as saídas são diferentes. A questão é por quê? Snippet 1 class base { public static $var = 1; } class sub extends base { public static $var = 2; } […]

Teste o método de fábrica no manipulador de comandos com phpspec

Como testar methods estáticos que são methods de fábrica infact: public function hireEmployee(HireEmployeeCommand $command) { $username = new EmployeeUsername($command->getUsername()); $firstName = $command->getFirstName(); $lastName = $command->getLastName(); $phoneNumber = new PhoneNumber($command->getPhoneNumber()); $email = new Email($command->getEmail()); $role = new EmployeeRole($command->getRole()); if ($role->isAdmin()) { $employee = Employee::hireAdmin($username, $firstName, $lastName, $phoneNumber, $email); } else { $employee = Employee::hirePollster($username, $firstName, $lastName, […]

PHP evita classs estáticas para evitar dependencies, mas eu preciso usar global em todos os lugares

Muitas vezes eu escutei evitar aulas estáticas, porque elas inserirão dependencies que tornarão seu código inutilizável em outros projetos e não permitirão testá-lo . Digamos que temos um class DB típico para acessar a Base de Dados, se essa class for static , poderíamos chamá-la sempre que estiver no nosso código: DB::execQuery(…); mas isso cria […]

A class extensível do PHP faz as crianças herdar a mesma propriedade estática

Gostaria de começar mostrando um caso de teste: class A { public static $instance=null; public function __construct(){ self::$instance=$this; } public function className(){ return get_class(self::$instance); } } class B extends A { public function className(){ return get_class(self::$instance); } } // test code $b=new B(); echo $b->className; // B $a=new A(); echo $a->className; // A echo $b->className; […]