[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: два метод от результата метода в одном клссе
svolota
class MyClass
{
public $x;
public $y;

public function __construct($x, $y)
{
$this->x = $x;
$this->y = $y;
}

public function sumXY()
{
$sum = $this->x + $this->y;
return $sum;
}
public function SquaringTheSum()
{
$sq = sumXY()*sumXY();
return $sq;
}
}


$pairXY = new MyClass(2,3);
echo $pairXY->sumXY();
echo '<br>';
echo $pairXY->SquaringTheSum();


в этом случае методу SquaringTheSum() невдомёк что за функция sumXY()

можно ли "подружить" их в одном классе?



Спустя 1 минута, 14 секунд (23.07.2011 - 21:57) svolota написал(а):
class MyClass
{
public $x;
public $y;

public function __construct($x, $y)
{
$this->x = $x;
$this->y = $y;
}

public function sumXY()
{
$sum = $this->x + $this->y;
return $sum;
}

}

class BranchMyClass extends MyClass
{
public function __construct($x,$y)
{
parent::__construct($x,$y);
}
public function SquaringTheSum()
{
$sq = parent::sumXY()*parent::sumXY();
return $sq;
}
}


$pairXY = new BranchMyClass(2,3);
echo $pairXY->sumXY();
echo '<br>';
echo $pairXY->SquaringTheSum();

и можно ли так делать, если нельхяподружить в одном классе?

Спустя 8 минут, 50 секунд (23.07.2011 - 22:06) denash написал(а):
Весь мир обычно помнит, что к методам в классе нужно обращатся так:

$this->method(); // Это самый популярный вариант

но можно и так:

self::method();

Спустя 6 минут, 53 секунды (23.07.2011 - 22:13) denash написал(а):
Чтобы посчитать произведение, вам напрямую не нужно обращаться к этому методу $pairXY->sumXY(); можно его даже как private поставить

Спустя 1 минута, 54 секунды (23.07.2011 - 22:15) svolota написал(а):
Спасибо, видимо невнимательно читал теорию. А может подскажите ещё как из одного класса(класс1) у которого есть паблик функции возвращающие протектед свойства передать эти самые свойства другому классу(класс2)?

Спустя 2 минуты, 41 секунда (23.07.2011 - 22:17) denash написал(а):
Цитата (svolota @ 23.07.2011 - 19:15)
Спасибо, видимо невнимательно читал теорию. А может подскажите ещё как из одного класса(класс1) у которого есть паблик функции возвращающие протектед свойства передать эти самые свойства другому классу(класс2)?

Привидите пример кода, что вы хотите именно сделать.

Спустя 5 минут, 1 секунда (23.07.2011 - 22:22) svolota написал(а):
class MyClass1
{
private $x;
private $y;

public function __construct($x, $y)
{
$this->x = $x;
$this->y = $y;
}

public function getX()
{
return $this->x;
}
public function getY()
{
return $this->y;
}
}

class MyClass2
{
private $a;
private $b;

public function __construct ($a, $b)
{
$this->a = $a;
$this->b = $b;
}
public function addingCoeff()
{
/*и вот тут как то добавить из MyClass1 x и y чтобы вышло
$summary = $a*$x+$b*$y;
return $summary;*/

}
}

Спустя 11 минут, 23 секунды (23.07.2011 - 22:34) denash написал(а):

class MyClass1
{
private $x;
private $y;

public function __construct($x, $y)
{
$this->x = $x;
$this->y = $y;
}

public function getX()
{
return $this->x;
}
public function getY()
{
return $this->y;
}
}

class MyClass2
{
private $a;
private $b;

public function __construct ($a, $b)
{
$this->a = $a;
$this->b = $b;
}
public function addingCoeff()
{
Global $x,$y;
$summary = $this->a*$x+$this->b*$y;
return $summary;
}
}

$obj1=new MyClass1(4,5);
$obj2=new MyClass2(2,3);
$x=$obj1->getX();
$y=$obj1->getY();
Echo $obj2-> addingCoeff(); // Должно 23 по идее вывести



Ну вот первое, что на ум приходит.

Если свойства класса нам необходимо использовать за пределами класса, то его лучше как private не оформлять

Спустя 8 минут, 16 секунд (23.07.2011 - 22:42) denash написал(а):
Тут можно и так поступить:


class MyClass1
{
private $x;
private $y;

public function __construct($x, $y)
{
$this->x = $x;
$this->y = $y;
}

public function getX()
{
return $this->x;
}
public function getY()
{
return $this->y;
}
}

class MyClass2
{
private $a;
private $b;

public function __construct ($a, $b)
{
$this->a = $a;
$this->b = $b;
}
public function addingCoeff(MyClass1 $obj)
{

$summary = $this->a*$obj->getX()+$this->b*$obj->getY();
return $summary;
}
}

$obj1=new MyClass1(4,5);
$obj2=new MyClass2(2,3);
Echo $obj2-> addingCoeff($obj1);


Спустя 3 часа, 51 минута, 11 секунд (24.07.2011 - 02:33) svolota написал(а):
Спасибо большое!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.