Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Dziedziczenie metody z innym parametrem
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam

Czy mozliwe jest dziedziczneie metody z innym parametrem ?

dla przykladu mamy funkcjie :

  1. function find($id) {
  2. if(!$this->db->query("SELECT * FROM $this->tableName WHERE id='$id'")){
  3. throw new Exception('Error finding row');
  4. }


No i teraz chcialbym zeby ta metoda byla dziedziczona ale z innym parametrem i minimalnie zmienionym zapytaniem sql czyli tak :

  1. function find($token) {
  2. if(!$this->db->query("SELECT * FROM $this->tableName WHERE token='$token'")){
  3. throw new Exception('Error finding row');
  4. }


Czy jest to mozliwe ?
erix
Trochę nie zrozumiałem...?

Przecież jak rozszerzasz klasy, to metodą obiektu jest ta z najmłodszego potomka (jeśli są te same nazwy metod)... Chyba że chodziło Ci o coś innego.
Suh
Możliwe by to było np. poprzez przeładowanie metody ale w PHP nie ma kontroli typów więc niezależnie czy ty napiszesz funkcja($id) czy funkcja($string), będą one traktowane tak samo.. czyli musisz pisać 2 różne funkcje.
Wolfie
Zrobilem tak ze w klasie potomniej napisalem ta sama funkcje ale z innym parametrem no i przerobionym zapytaniem sql tak jak to w pierwszym poscie przedstawilem, no i wszystko smiga, jak wywoluje funkcje tak :

  1. $klasa->find(2);


to wyszukuje rekord gdzie id=2

a jak wywoluje funkcje tak:

  1. $klasa->find('kot');


To wyswietla mi rekord gdzie token='kot'

Wiec wydaje sie ze jest wszystko ok, ale czy to jest legalna operacja ? Nie bedzie niespodzianek jesli tak to zrobilem ?


---------------------------------------------------------

Sorry Panowie, cos poplatalem, rzeczywiscie dziala tylko ta metoda z najmlodszego potomka......

Musze to jeszcze raz sprawdzic bo wczesniej chyba wszystko dzialalo.....

---------------------------------------------------------------------------------

No wiec chodzi mi o to zeby mozna bylo dziedziczyc metode ale z innym parametrem, tak jak to wskazalem w pierwszym poscie.

Czy mozna tak zrobic czy trzeba napisac nowa metode z inna nazwa ? No bo np jesli chcemy odziedziczyc metode i dodac do metody potomnej parametr to bez problemu to sie udaje , ale czy da sie oddziedziczyc metode z innym parametrem ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.