Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.07.2011, 19:53
Аспирант
Отправить личное сообщение для romantik2011 Посмотреть профиль Найти все сообщения от romantik2011
 
Регистрация: 20.07.2011
Сообщений: 50

Перегрузка PHP
В этом коде, это переопределение в классах-потомках получается?
<?php 
class A{
public $t = 5;
protected $a = "<br>Алла<br>";
private	$b = "Петя";

public function s($x1){
	echo "Вызов родителя",$x1;
    echo $this->a,$this->b;	
	}

}

class B extends A{
public function s($x1){
parent::s(NULL);
	}
}

class C extends B{
public function s($x1){
echo $this->a;
	}
}

$obj = new B;
$obj->s(NULL);

$obj = new C;
$obj->s(NULL);
?>


Почему перегрузка не пашет?

Последний раз редактировалось romantik2011, 25.07.2011 в 20:01.
Ответить с цитированием
  #2 (permalink)  
Старый 03.08.2011, 20:22
Аспирант
Отправить личное сообщение для romantik2011 Посмотреть профиль Найти все сообщения от romantik2011
 
Регистрация: 20.07.2011
Сообщений: 50

Попробовал написать такой код, не выводит все три параметра почему-то. Я имею ввиду, второго перегруженного метода с именем m().
<?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 />");

?>
Ответить с цитированием
  #3 (permalink)  
Старый 03.08.2011, 23:04
Аспирант
Отправить личное сообщение для romantik2011 Посмотреть профиль Найти все сообщения от romantik2011
 
Регистрация: 20.07.2011
Сообщений: 50

А почему только вот так сработало? Почему без внутреннего цикла не запахало и без всяких проверок и приведений типов?
Кто-нибудь подскажет как реализовать не так громоздко цикл форич?
<?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-ий параметр");
 
?>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Запуск выполнения PHP при нажатие на кнопку??? Abibas220 Общие вопросы Javascript 1 05.01.2011 12:05
Как передать картинку из javascript в php KIVagant AJAX и COMET 3 12.05.2010 11:54
jquery, php, json… ? незнайка jQuery 4 06.02.2010 01:45
javascript и php (Вопрос) Гауляйтер Общие вопросы Javascript 3 06.05.2009 09:23