Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dopisywanie zmiennej globalnej do każdej funkcji w klasie
Forum PHP.pl > Forum > Przedszkole
JamalBIG
Witam

Czy jest jakiś sposób aby zmienna globalna była dostępna we wszystkich funkcjach w klasie aby nie tworzyć ciągle funkcji w postaci:
  1. function przykladowaFunkcja() {
  2. global $zmienna;
  3. }


Z góry dzięki za pomoc
Pozdrawiam
maniana
  1. function przykladowaFunkcja() {
  2. echo $GLOBALS["zmienna"];
  3. }

Ale to jest nie estetyczne... Warto przerzucić się na programowanie obiektowe, tam nie ma takich problemów a funkcje i tak operują na tych samych danych.
JamalBIG
Dzięki za odpowiedż, chodzi o to że stosuję programowanie obiektowe i wygląda to tak:
  1. class przykladowa {
  2. function pierwszaFunkcja() {
  3. global $zmienna;
  4. }
  5. function drugaFunkcja() {
  6. global $zmienna;
  7. }
  8. }

Czy muszę we wszystkich funkcjach używać 'global $zmienna'? Czy może użycie 'public $zmienna' przed wszystkimi funkcjami rozwiąże problem?

Pozdrawiam
maniana
  1. class przykladowa {
  2. private $zmienna = $GLOBALS["zmienna"];
  3. public function pierwszaFunkcja() {
  4. echo $this->zmienna;
  5. }
  6. public function drugaFunkcja() {
  7. echo $this->zmienna;
  8. }
  9. }
lub
  1. class przykladowa {
  2. private $zmienna;
  3. public function __construct($zmienna) {
  4. $this->$zmienna = $zmienna;
  5. }
  6. public function pierwszaFunkcja() {
  7. echo $this->zmienna;
  8. }
  9. public function drugaFunkcja() {
  10. echo $this->zmienna;
  11. }
  12. }
  13.  
  14. $klasa = new przykladowa($zmienna);
JamalBIG
Dzięki wielkie za pomoc. Czy mógł byś mi jeszcze napisać czy zastosowanie funkcji '__construct' w programowaniu obiektowym ma jakieś specjlane zastosowanie czy nie ma to nic do rzeczy?
jaslanin
ma specjalne zastosowanie, funkcja ta jest wywoływana podczas tworzenia instancji obiektu, czyli w kodzie powyżej jest to
  1. new przykladowa($zmienna);


http://www.php.net/manual/en/language.oop5.decon.php
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.