Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> deklaracja wartości zmiennej w klasie, pomoc oop i struktura
Maciek1705
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


Witam moi drodzy ma do Was ogromną prośbę czy pomogli byście mi w pewnej sprawie. Otóż mam klasę napisaną w oop służy ona do zmiany języka strony. Mam także skrypt który po ip rozpoznaje kod kraju czyli np. pl, de, en, us. Chce połączyś te dwa skrypty ze sobą.
  1. <?php
  2. include("geoip.inc");
  3. $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
  4. $country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
  5. $country_name = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);
  6. geoip_close($gi);
  7.  
  8. if($country_code == "PL"){
  9. //ustaw domyslny jezyk polski
  10. }
  11. else if($country_code == "EN"){
  12. //ustaw domyslny jezyk angielski
  13. }
  14. else if($country_code == "DE"){
  15. //ustaw domyslny jezyk niemiecki
  16. }
  17. else //ustaw domyslny jezyk angielski
  18. ?>


skrypt z klasą od zmiany języka jest następujący
  1. <?php
  2. class Lang
  3. {
  4. private $languages = array('pl' => 'Polski', 'en' => 'English', 'de' => 'Deutch');
  5. private $current_language = FALSE;
  6. private $lines = array();
  7.  
  8. private static $instance = FALSE;
  9.  
  10. ...
  11.  
  12. }
  13. ?>


zmienna current language jest odpowiedzialny za bierzący jezyk
sęk w tym że to są moje początki oop i nie wiem czy w tego if co podałem wcześniej mogę wstawić po prostu $current_language = 'pl'; czy robi się this lub podobnymi proszę o pomoc w tej kwestii.

Drugie pytanko jest banalne dla tych co z oop mieli już do czynienia :
  1. //jeśli mam strone a na niej sam kod html bez otwartych znaków <?php?> to zmienna wygląda tak
  2. <?= __('main_page') ?> // samo jej wyświetlenie
  3.  
  4. //co zrobić gdy mam już otwarty znacznik php i chce wstawić tą zmienną czy robię to tak?
  5. echo $alfa = '<h2>'.= __('main_page').'</h2>';
  6. //czy tak
  7. echo $alfa = '<h2>';?> <?= __('main_page') ?><?php echo '</h2>';
Go to the top of the page
+Quote Post
jarmiar
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


Aby ustawic wartosc zmiennej klasowej uzywasz konstrukcji:

  1.  
  2. $this -> zmienna = 'wartosc';
  3.  
Go to the top of the page
+Quote Post
Maciek1705
post
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


ok dzięki za podpowiedź.
Wstawiam sobie ten fragment wewnątrz klasy tuż po linii "private static $instance = FALSE;"
  1. include("geoip.inc");
  2. $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
  3. $country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
  4. $country_name = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);
  5. geoip_close($gi);
  6. if($country_code == "PL"){
  7. //ustaw domyslny jezyk polski
  8. $this -> current_language = 'pl';
  9. }
  10. else if($country_code == "EN"){
  11. //ustaw domyslny jezyk angielski
  12. $this -> current_language = 'en';
  13. }
  14. else if($country_code == "DE"){
  15. //ustaw domyslny jezyk niemiecki
  16. $this -> current_language = 'de';
  17. }
  18. else $this -> current_language = 'en'; //ustaw domyslny jezyk angielski
  19.  


dziwna rzecz się dzieje bo pokazuje mi błą na include i nie wiem w czym rzecz, jak to przerobić na obiektowe php?(IMG:style_emoticons/default/questionmark.gif) sorki za takie pytania - wybaczcie
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


W klasie są metody. Nie możesz tak po prostu tego wrzucić.

  1. class cos {
  2. private static $instance = FALSE;
  3.  
  4. public function xxx() {}
  5. }


Poczytaj jakiś kurs. http://tworzenie-stron-www.org/article/8/p...obiektowe_w_php
Go to the top of the page
+Quote Post
Maciek1705
post
Post #5





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


dzięki chłopaki za wskazówki poczytałem kurs i działa będę wdzięczny jak jeszcze nakierujecie mnie z tą drugą kwestią
  1. //jeśli mam strone a na niej sam kod html bez otwartych znaków <?php?> to zmienna wygląda tak
  2. <?= __('main_page') ?> // samo jej wyświetlenie
  3.  
  4. //co zrobić gdy mam już otwarty znacznik php i chce wstawić tą zmienną czy robię to tak?
  5. echo $alfa = '<h2>'.= __('main_page').'</h2>';
  6. //czy tak
  7. echo $alfa = '<h2>';?> <?= __('main_page') ?><?php echo '</h2>';


z góry dzięki
Go to the top of the page
+Quote Post
Uriziel01
post
Post #6





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Cóż to za konstrukcja ? To jest jakiś system szablonów czy coś podobnego ?
  1. <?= __('main_page') ?>


Bo pod kod PHP nie podchodzi.
Go to the top of the page
+Quote Post
strife
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


To nie jest wyświetlenie zmiennej tylko funkcji.

@Uriziel01 - Osobiście domyślam się, że __() określa zastosowanie jakiejś konstrukcji z rodziny i18n, spotkałem się z tym kilka razy (chyba nawet w Symfony było).

@Maciek1705 - po prostu robisz echo, w tej sposób.

  1. <?php echo '<h2>' . __('main_page') . '</h2>'; ?>
Go to the top of the page
+Quote Post
Maciek1705
post
Post #8





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


nie nie nie to nie jest system szablonów znalazłem taki typ odwołanie na internecie że to jest wywołanie zmiennej zapisanej w pliku do którego odwołuje się klasa, dla mnie było to dziwne bo myślałem że przez samo echo wystarczy ale tak jak pokazałem działa więc się tego tzymałem, strife dzięki za pomoc dziś przetestuje czy działa.
Go to the top of the page
+Quote Post
viking
post
Post #9





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


I jeszcze mała uwaga. Raczej staraj się nie stosować zapisu skrócnego <??> bo możesz mieć z tym problemy.
Go to the top of the page
+Quote Post
Maciek1705
post
Post #10





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


ok dzięki wielkie wszystko działa temat do zamknięcia.
PS dzięki za poradę zmienię skrócony zapis na pełny <?php ?>
Go to the top of the page
+Quote Post

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: 24.12.2025 - 16:45