Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Początki z OOP, Krytyka, komentarze, pomoc w napisaniu lepszego kodu :)
Wicepsik
post 19.07.2009, 19:04:48
Post #1





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Witam,
Zaczynam pisać w OOP, pomaga mi w tym kolega doradzając conieco. Chciałbym byście pomogli mi w pisaniu lepszego kodu. Przestawię wam moje wypociny.


  1. <?php
  2. class pogoda{
  3.  
  4.    public $web;
  5.    public $cities;
  6.    public $temp;
  7.    public $hpa;
  8.    
  9.    public function __construct($city){
  10. /*
  11. Wpisane wszystkie miasta które są dostępne w polsce
  12. */
  13.     $this->cities = array('Aleksandrów Kujawski' => 11642, 'Augustów' => 11643, 'Bartoszyce' => 11644, 'Bełchatów' => 11646, 'Będzin' => 11645, 'Biała Podlaska' => 11647, 'Białka Tatrzańska' => 11648, 'Białobrzegi' => 11649, 'Białogard' => 11650, 'Białystok' => 11651, 'Bielice' => 11652, 'Bielsk Podlaski' => 11653, 'Bielsko-Biała' => 11654);
  14.  
  15.    
  16.    
  17.        if(array_key_exists($city, $this->cities)){
  18.            $this->web = file_get_contents('http://pogoda.interia.pl/miasta?id='.$this->cities[$city]);
  19.            preg_match_all('/<b>([0-9]+)</b>/<span class="tex2B"  style="font-size:14px;">([0-9]+)</span>/<span class="tex3B">([0-9]+)</span>/', $this->web, $this->temp);
  20.            preg_match_all('/<b>([0-9]+)</b> hPa/', $this->web, $this->hpa);
  21.        }else{
  22.            echo 'Brak miasta!';
  23.        }
  24.        
  25.    }
  26.    
  27.    public function show_cities(){
  28.            $text = '<select>';
  29.        foreach($this->cities as $key => $value){
  30.            $text .= '<option value="'.$value.'">'.$key.'</option>';
  31.        }
  32.            $text .= '</select>';
  33.            
  34.        return $text;
  35.    }
  36.    
  37.    public function today_temp($mi = 0){
  38.              if($mi = 0){
  39.                  $text = $this->temp[1][0];
  40.              }else{
  41.                $text = $this->temp[3][0];
  42.              }
  43.         return $text;
  44.    }
  45.    
  46.    public function temp($mi = 0, $li = 0, $day = 0){
  47.              
  48.            $on = ($mi == 0) ? 1 : 3;
  49.            
  50.            switch($day){
  51.                case 0: if($li == 0) $of = 2; elseif($li == 1) $of = 3; else($li == 2) $of = 4; // przed południem, po południu, wieczorem
  52.                          break;
  53.                case 1: if($li == 0) $of = 5; elseif($li == 1) $of = 6; elseif($li == 2) $of = 7; else $of = 8; // nad ranem, przed południem, po południu, wieczorem
  54.                          break;
  55.                case 2: if($li == 0) $of = 9; elseif($li == 1) $of = 10; elseif($li == 2) $of = 11;  else $of = 12; // nad ranem, przed południem, po południu, wieczorem
  56.                          break;
  57.                case 3: $of = ($li == 0) ? 13 : 14;  // dzien, noc
  58.                          break;
  59.                case 4: $of = ($li == 0) ? 15 : 16;   // dzien, noc
  60.                          break;
  61.                case 5: $of = ($li == 0) ? 17 : 18;   // dzien, noc
  62.                          break;
  63.            }
  64.            
  65.         return $this->temp[$on][$of];
  66.    }
  67.    
  68.    public function hPa($mi = 0){
  69.    
  70.        return $this->hpa[1][$mi];
  71.    
  72.    }
  73.    
  74.    
  75.    public function __destruct() {
  76.        unset($this);
  77.    }
  78.    
  79.    
  80.    
  81.    
  82. }
  83.  
  84.  
  85.    $obiekt = new pogoda('Warszawa');
  86.    $obiekt->show_cities();
  87.    echo $obiekt->temp(1,1,1);
  88.    echo $obiekt->hPa(2);
  89. ?>


Ten post edytował Wicepsik 19.07.2009, 19:05:10


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:44