Witam!

Zagnieżdzone klasy nie działają w PHP więc takie coś wywala błąd
  1. <?php
  2. class Test1 {
  3. class Test2 {
  4. }
  5. }
  6. ?>


Takie coś też wywala błąd!
  1. <?php
  2. class Test1 {
  3. function __construct() {
  4. class Test2 {
  5. }
  6. }
  7. }
  8. ?>


Natomiast jeżeli definicję klasy Test2 dam do osobnego pliku i zrobie tak:
  1. <?php
  2. class Test1 {
  3. function __construct() {
  4.  include("class.Test2.php"); //mozna uzyc require 
  5. }
  6. }
  7. ?>


Takie cudo działa bez zarzutu! Może mi ktoś wytłumaczyć czym się różnią dwa ostatnie kody?