Articles of oop

¿Cómo usar la constante de clase como una definición de argumento en la función php?

Tengo una clase: class FetchMode { const FetchAll = 0; const FetchOne = 1; const FetchRow = 2;} y una función: function getRecordSet(FetchMode $FetchMode){ some switch cases } Me gustaría usar $ FetchMode como criterio de caso de cambio pero recibiendo un error: Error fatal que se puede capturar: el argumento pasado a getRecordSet () […]

La función de callback de PHP no funciona en funciones de objeto

Tengo una matriz y quiero aplicar MySQLi->real_escape_string en todos los miembros de la matriz a través de array_walk pero esto no funciona: array_walk($array, ‘$mysqli->real_escape_string’); Da este error: Advertencia: array_walk () espera que el parámetro 2 sea una callback válida, la función ‘$ mysqli-> real_escape_string’ no se encuentra o el nombre de la función no es […]

Romper el constructor

¿Hay una manera de evitar la creación de objetos dentro de su constructor, de modo que: $object = new Foo(); echo $object; // outputs: NULL

¿Por qué PHP Trait no puede implementar interfaces?

Me pregunto por qué PHP Trait (PHP 5.4) no puede implementar interfaces. La actualización de user1460043’s answer => … no puede requerir que la clase la use para implementar una interfaz específica Entiendo que podría ser obvio, porque la gente podría pensar que si una Class A está utilizando un Trait T que implementa una […]

ERROR en DOP: Llamar a una función miembro prepare () en nulo

Tengo un problema con la función de preparación ==> Llamar a una función miembro prepare () en nulo Tengo páginas de arrastre classo.php e index.php classo.php: setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING); } function insererDonne($pseudo,$password) { global $db; classo::connection(); $donne=array( ‘user’ =>$pseudo, ‘pass’ =>$password ); $req=”INSERT INTO users (user,pass) VALUES (:user,:pass)”; $sql=$db->prepare($req); $sql->execute($donne); } } ?> index.php: insererDonne(‘dsds’,’tosdsta’); ?> ¿Tienes […]

Tratar con caracteres especiales en nombres de propiedades de objetos

Estoy trabajando con una base de datos creada por un pasante de profesor universitario. Muchos de los campos tienen nombres como ‘Ingresos_ (presupuesto)’. Actualmente cuando trabajo con objetos que tienen los campos como propiedades, hago algo como $f = ‘Revenues_(budget)’; echo $obj->$f; Esto funciona bien, pero me preguntaba si podría haber una manera más elegante […]

¿Cómo llamar a un método protegido en php?

Aquí está la estructura de clase. Quiero que Observer: callme () se pueda llamar también desde Children. class Observer { protected callme() { } } class Parent extends Observer { function createChild() { $this->callme(); // this is OK return new Child ($this); } } class Child { private $this myParent; public function __constructor ($myParent) { […]

Añadir dinámicamente una propiedad privada a un objeto

Tengo una clase: class Foo { // Accept an assoc array and appends its indexes to the object as property public function extend($values){ foreach($values as $var=>$value){ if(!isset($this->$var)) $this->$var = $value; } } } $Foo = new Foo; $Foo->extend(array(‘name’ => ‘Bee’)); Ahora el objeto $Foo tiene una propiedad de name público con valor Bee . ¿Cómo […]

Refiriéndose a un miembro estático de una subclase

Me gustaría que hubiera una palabra clave sub que hiciera que el código debajo del value impresión en la ejecución. Sin embargo, no existe y me pregunto: ¿existe alguna forma de referirse a un miembro de una subclase? class Main { static function foo() { echo sub::$variable; } } class Sub extends Main { static […]

AOP en PHP simple que no requiere ninguna extensión de PECL (¡Vaya!) – ¿Cómo?

Hay un marco llamado Go! Marco orientado a aspectos para PHP Y está hecho en PHP simple, no requiere ninguna extensión de PECL ni contenedores DI para funcionar. Lo que es más, se puede integrar con cualquier framework y biblioteca PHP existente (con o sin configuración adicional). Y no hay controles de tiempo de ejecución […]