|
|
|
|
овал написать такой код, не выводит все три параметра почему-то. Я имею ввиду, второго перегруженного метода с именем m().
[code=php]
<?php
class D{
function m($p1,$p2){
for($i=0; $i<count($p1); $i++)
echo $p1[$i].' ';
echo ' '.$p2;
}
function __call($n,$v) {
foreach($v as $z=>$f){
echo $v. ' '.$f;
}
}
}
$x = new D;
$p = array("Динозавр","Аладин",954);
$g = array("Ура!");
$x->m($p,"2-ой параметр<br />");
$x->m($g,"Санчо","3-ий параметр<br />");
?>
|
| |
|
|
|
|
|
|
|
для: romantik2011
(03.08.2011 в 20:33)
| | Вы хотите перегрузку методов сделать по параметрам? Так не получиться... самый простой вариант реализовать метод с тремя параметрами, сделав третий - необязательным. В зависимости от его значения принимать ту или иную логику. В этом плане ООП в PHP не очень сильный. | |
|
|
|
|
|
|
|
для: cheops
(03.08.2011 в 22:28)
| | Если так написать всё выводит, но масив не выводит никак.
<?php
class D{
function m($p1,$p2){
for($i=0; $i<count($p1); $i++)
echo $p1[$i].' ';
echo ' '.$p2;
}
function __call($n,$v) {
foreach($v as $f){
echo $f.' ';
}
}
}
$x = new D;
$p = array("Динозавр","Аладин",954);
$g = array("Ура!");
$x->m($p,"2-ой параметр<br />");
$x->s($g,"Санчо","3-ий параметр");
?>
|
Результат:
Динозавр Аладин 954 2-ой параметр
Array Санчо 3-ий параметр
|
| |
|
|
|
|
|
|
|
для: romantik2011
(03.08.2011 в 22:39)
| | А почему только вот так сработало? Почему без внутреннего цикла не запахало и без всяких проверок и приведений типов?
Кто-нибудь подскажет как реализовать не так громоздко цикл форич?
<?php
class D{
function m($p1,$p2){
for($i=0; $i<count($p1); $i++)
echo $p1[$i].' ';
echo ' '.$p2;
}
function __call($n,$v) {
foreach($v as $f){
if ((string)$f == "Array")
foreach($f as $v)
{
echo $v;
}
else echo $f.' ';
}
}
}
$x = new D;
$p = array("Динозавр","Аладин",954);
$g = array("Ура!");
$x->m($p,"2-ой параметр<br />");
$x->s($g,"Санчо","3-ий параметр");
?>
|
| |
|
|
|