Przekazywanie obiektow w parametrze funkcji vs typy skalarne

0

Mam takie pytanie, co jest lepszym, szybszym, profesjonalniejszym podejściem. Przekazywanie do funkcji kilku argumentów czy przekazywanie do funkcji jednego argumentu który jest obiektem, oczywiście dochodzą tutaj referencje. przykład

funkcja a przyjmuje parametry x i y i teraz jak lepiej się do niej odwołać

a(1, 2);
#czy
$a->x = 1;
$a->y = 2;
a($a);
#a funckcja a powiedzmy że wygląda tak

function a(&$a){
echo $a->x.', '.$a->y;
}

i żeby nie zakładać nowego tematu to, jak jest z tym w js, kilka argumentów czy jeden obiekt ?

0

tak jak jest wygodniej jest profesjonalniej :P

1

To zależy.

Programowanie obiektowe zazwyczaj polega na odwzorowywaniu obiektów (lub pojęć) ze świata rzeczywistego. Jeżeli masz funkcję, która operuje na punktach, to rozsądne (w miarę) jest przekazywanie do niej obiektu, będącego punktem (klasa Point zawierająca x, y, czy nawet x, y, z i t).

Jeżeli masz funkcję matematyczną która wylicza wartość dla danego x i y to oblekanie tego w obiekt jest bezsensowne.

0

nie zapominaj też o takich konstrukcjach w rozważaniach: funkcja(new Klasa(a,b,c))

0

Tak, jak zostalo tutaj wczesniej wspomniane: jezeli maszs funkcje matematyczna, ktora potrzebuje trzech parametrow: x, y, z, to nie ma sensu opakowywac tego w obiekt. Jezeli jednak taka metoda/funkcja dokonuje pewnych skomplikowanych obliczen, na podstawie wielu roznych parametrow i czynnikow, to owszem. Dodatkowo mozesz wymoc w PHP, przekazanie obiektu okreslonej klasy - np.:

function foo(Bar $bar)
{
	if ($bar->getX()) { // obiekt $bar musi zawierac metode getX() inaczej sie wyspie...
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1