Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Podanie nazwy metody przy tworzeniu obiektu klasy, Czy tak się da zrobić oraz w wskazówki w napisaniu poprawieniu klasy.
arzach
post
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Witam napisałem kod i ma on za zadanie dodawać lub odejmować pkt za daną czynność na stronie np. gdy user doda komentarz. Jeśli admin usunie np. komentarz danego użytkownika wtedy usuwa mu liczbę pkt.

I chodzi mi żeby to zrobić tak że przy tworzeniu obiektu podawać user_id, identyfikator kategorii oraz nazwę metody jaka ma być wykonywana np.

  1. new Eps(12, 'A', $this->update_point());


tylko wiem że tak się nie da. Wiec proszę o wskazówki jak powinna być napisana taka klasa bo wiem że da się to napisać prościej. Proszę o wskazówki ogarniętych ludzi w OOP.

Kod.

  1. abstract class Eps_Cat_Point {
  2. protected $eps_cat_point = array('A' => 3, 'C' => 5, 'D' => 2);
  3.  
  4. // Dane beda pochodzic z bazy
  5. // Litera to identyfikator kategorii za co dostaje sie pkt np A za artykul 3 pkt.
  6.  
  7. }
  8.  
  9. class Eps extends Eps_Cat_Point {
  10.  
  11. public $user_id;
  12. public $cat_point;
  13. public $query;
  14.  
  15. public function __construct($user_id, $cat_point) {
  16.  
  17. if($this->setUser_id($user_id) && $this->setCat_Point($cat_point)){
  18. $this->user_id = $user_id;
  19. $this->cat_point = $cat_point;
  20. }
  21.  
  22. }
  23.  
  24. public function update_point(){
  25. $this->query = "UPDATE tabela SET user_point=user_point+'".$this->eps_cat_point[$this->cat_point]."' WHERE user_id='".$this->user_id."'";
  26. return $this->query;
  27. }
  28.  
  29. public function delete_point(){
  30. $this->query = "UPDATE tabela SET user_point=user_point-'".$this->eps_cat_point[$this->cat_point]."' WHERE user_id='".$this->user_id."'";
  31. return $this->query;
  32. }
  33.  
  34.  
  35.  
  36. public function setUser_id($user_id) {
  37.  
  38. if(!is_int($user_id)) {
  39. die("Niepoprawna wartosc user_id");
  40. return false;
  41. } else {
  42. return true;
  43. }
  44.  
  45. }
  46.  
  47. public function setCat_Point($cat_point) {
  48.  
  49. if(!preg_match("/^[A-Z]{1}$/", $cat_point)) {
  50. die("Niepoprawna wartosc cat_point");
  51. return false;
  52. } else {
  53. return true;
  54. }
  55. }
  56.  
  57. }
  58.  
  59.  
  60. $eps = new Eps(12, 'A');
  61. echo $eps->delete_point();


Ten post edytował arzach 24.10.2010, 20:29:32
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:03