Souci tableau Class & Interface
Bonjour,
J'essaye de résoudre un pb et pour se faire, je me suis écrit un petit test...
Je ne comprends pas pkoi le tableau à une dimension = 0
Le voici:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| <?php
interface Validator
{ function validate() ;
}
class Little implements Validator
{ function __construct()
{}
function __destruct()
{}
function validate()
{ print("Validate Little <br>\n") ;
user_error("Validating LITTLE" , E_USER_NOTICE) ; }
}
class Greater implements Validator
{ function __construct()
{}
function __destruct()
{}
function validate()
{ print("Validate Greater <br>\n") ;
user_error("Validating GREATER" , E_USER_NOTICE) ; }
}
class main
{ private $tab ;
function __construct()
{ $tab[] = new Little () ;
$tab[] = new Greater() ;
print("Constructor <br>\n") ;
}
function destruct()
{ }
function validate()
{ print("Validate Main Count[".count($this->tab)."]<br>\n") ;
for($i = 0 ; $i < count($this->tab) ; $i++)
{ print("loop[".$i."] br>\n") ;
if ($this->tab[$i] instanceof Validator)
$this->tab[$i]->validate() ;
}
}
}
$main = new Main() ;
$main->validate() ;
?> |
Rien dans le log PHP juste l'affichage...
Code:
1 2
| Constructor
Validate Main Count[0] |
Le but final est d'essayer de implifier ce code (dans mon application principale...)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| function validate()
{ user_error("validate form[".$this->cntField."]" , E_USER_NOTICE) ;
if (!$this->cntFormFilled())
for ($i = 0 ; $i < $this->cntField ; $i++) :
if ($this->form[$i] instanceof DATE)
$this->form[$i]->validate() ;
elseif ($this->form[$i] instanceof DECIMAL)
$this->form[$i]->validate() ;
elseif ($this->form[$i] instanceof EMAIL)
$this->form[$i]->validate() ;
elseif ($this->form[$i] instanceof INTEGER)
$this->form[$i]->validate() ;
elseif ($this->form[$i] instanceof PASSWORD)
$this->form[$i]->validate() ;
elseif ($this->form[$i] instanceof PHONE)
$this->form[$i]->validate() ;
elseif ($this->form[$i] instanceof SELECT)
$this->form[$i]->validate() ;
elseif ($this->form[$i] instanceof TEXT)
$this->form[$i]->validate() ;
elseif ($this->form[$i] instanceof TEXTAREA)
$this->form[$i]->validate() ;
else
{ $this->setMesssage(INVLCMD) ;
throw new Exception("Unrecognized command") ;
}
endfor ;
} |
Mais j'aurai sans doute un autre souci à savoir que je n'ai si je peux écrire
Code:
1 2 3 4
| class myClass Extends CheckForm interface Validator
{ bla bla ........
} |
Je ne crois pas mais n'ai vu nulle part parler de cela...
Qui peut me faire avancer un peu ? :mouarf: