Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Sposób znakowanie metody prywatnej
-lukasamd-
post 25.10.2009, 16:30:10
Post #1





Goście







Witam,
powoli staram się używać OOP i dziś trafiłem na coś, o czym nigdzie nie czytałem.

Wszędzie piszą, znakuj metodę prywatną klasy tak:
Kod
private function nazwa_funkcji(DALSZY KOD


w przeglądanym pliku znalazlem coś takiego:

Kod
function _nazwa_funkcji(DALSZY KOD


a następnie w dokumentacji dowiedziałem się, że ma to dostęp prywatny...

Czy jest to zamienny sposób oznaczania, czy jeszcze coś innego?
Jeżeli to pierwsze, to co lepiej stosować? Wydaje mi się że pierwszy wariant jest najbardziej czytelny, ale nie wiem jak się przyjęło.
Go to the top of the page
+Quote Post
Fifi209
post 25.10.2009, 20:01:58
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Według mojej wiedzy ten drugi nijak nie może być prywatnym, chyba że się mylę i ktoś mnie naprowadzi na dobry tok myślenia.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
nospor
post 25.10.2009, 20:06:29
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




dla oznaczenia metody prywatnej uzywa sie slowa "private".

uzywanie podkreslenia jest tylko i wyłącznie jednym z przyjętych nazewnictw zmiennych/funkcji, mowiących, zeby podkresleniem rozpoczynac zmienne prywatne.
Inne nazewnictwa mówią, ze zmiennna prywatna to zmienna pisana z małej litery. zmienna pisana z duzej litery to zmienna publiczna.

taki wiec kod:
function _nazwa_funkcji
dla php to nic innego jak funkcja publiczna. Dla notacji - prywatna
taki zas :
private function _nazwa_funkcji
dla php to funkcja prywatna. Dla notacji też prywatna.

No ale ważniejsze jest to co dla php winksmiley.jpg Notację/nazewnictwo należy stosować tylko dla przejrzystości dla człowieka


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-lukasamd-
post 25.10.2009, 20:38:28
Post #4





Goście







Aha, no to dzięki winksmiley.jpg
Nie wiem po co stosować to "_" dla notacji, skoro nieco wcześniej stoi jak wół (no bo musi stać): "private"... smile.gif
Go to the top of the page
+Quote Post
nospor
post 25.10.2009, 20:40:33
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale jak gdzieś później w kodzie masz:
...
$this->_nazwa_funkcji();
...
to juz po samej nazwie wiesz, że to prywatna - nie musisz leciec do jej definicji


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-lukasamd-
post 26.10.2009, 05:34:13
Post #6





Goście







Niby tak, tylko że w tym kodzie nie odwołują się do tych funkcji w ten sposób, czyli jest coś takiego:

Opis metody:
Kod
function _nazwa_funkcji(DALSZY KOD


Jej użycie w dalszej części klasy:
Kod
$this->nazwa_funkcji();
Go to the top of the page
+Quote Post
scanner
post 26.10.2009, 08:20:12
Post #7





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Na pewno nie masz tam dwu metod - jednej z podkreśleniem i drugiej bez?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
-lukasamd-
post 26.10.2009, 08:53:38
Post #8





Goście







Na pewno.
Zresztą sprawdź sam - moduł obsługi mysqli w phpbb3.
Go to the top of the page
+Quote Post
Fifi209
post 26.10.2009, 19:25:54
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(lukasamd @ 26.10.2009, 08:53:38 ) *
Na pewno.
Zresztą sprawdź sam - moduł obsługi mysqli w phpbb3.


Niemożliwe, może klasa w której to zobaczyłeś dziedziczy tą funkcję z innej klasy?

czarne jest czarne a białe jest białe i nikt mi nie wmówi, że jest inaczej.

Ten post edytował fifi209 26.10.2009, 19:26:20


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

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: 10.07.2025 - 06:52