2012-05-20 23 views
8

¿Las versiones de PHP 5.3 o posteriores admiten clases internas? ejemplo:php inner class support

class MyClass{ 
    class PrivateClass1{ 

    } 
    class PrivateClass2{ 

    } 
    class PrivateClass3{ 

    } 

    private $obj1; 
    private $obj2; 
    private $obj3; 

    __construct(){ 
     $obj1 = new PrivateClass1(); 
     $obj2 = new PrivateClass2(); 
     $obj3 = new PrivateClass3(); 
    } 
} 
+1

¿En qué versión intentó esto? – Lion

+1

¿Cuál es el propósito de una clase interna? ¿Y qué otros idiomas los soportan? Estoy intrigado. –

+0

Ningún php no admite clases anidadas. @Lion, no creo que lo haya intentado. Contiene muchos errores. sin el signo '$'. no existe la palabra clave 'function' para declarar el método –

Respuesta

13

PHP actualmente (5.4.3) no es compatible con las clases internas/Amigo

Y tampoco hay RFC in the wiki pidiendo adición de una función como esta.

+1

Estrecho. A. Los. Punto. +1 –

2

Es posible crear una clase dentro de otra clase definiton, pero no es posible definir una clase dentro de una definición de clase. Esto significa que su construcción no es válida.

embargo, siempre se puede extender una clase con otra clase, compruebe este URL para más:

http://php.net/manual/en/keyword.extends.php

Comprobar Can I instantiate a PHP class inside another class? para aún más.

+0

Lo siento, sé cómo extender una clase. Necesito crear algo como este ejemplo – Johntor

+0

@Johntor Sí, creo que alguien que pide anidación en clase sabe acerca de la extensión, solo quería dar una alternativa para las personas que lean esto en el futuro. – Sliq

+0

¡Bien, lo siento! (Te di +1) – Johntor