Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skąd pochodzi wywołanie metody
Magan
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2009

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


Zakładając, że jest dany obiekt z poszczególnymi metodami, czy istnieje sposób by sprawdzić w metodzie, czy metoda ta została wywołana z poza obiektu albo z obiektu?

Ten post edytował Magan 3.09.2014, 00:16:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
irmidjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


hehe Pyton_000 mnie ubiegł (IMG:style_emoticons/default/smile.gif)

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

skoro potrzebujesz różnej logiki, to lepiej napisać więcej krótszych metod. Taki przykład: powiedzmy, że chcesz coś zrobić z otrzymanym argumentem, ale jeśli został przekazany z zewnątrz, to trzeba go najpierw zwalidować, a jeśli z innej wewnętrznej metody klasy to nie trzeba walidować, bo wtedy zawsze jest poprawny. No to tak jakoś to można zrobić:

  1. class A {
  2. public function doSomething($value) {
  3. //najpierw walidacja $value, potem przekaż do metody b() jeśli ok:
  4. $this->b($value);
  5. }
  6.  
  7. private function b($value) {
  8. //zrób coś z $value,
  9. }
  10.  
  11. private function c() {
  12. //a to jakaś inna metoda tej klasy, wywołana w jakiś sposób, także używa metody b()
  13. //ale nie trzeba robić walidacji argumentu, bo jest zawsze poprawny w tym przypadku
  14. $value = 'coś tam'; //zawsze poprawne
  15. $this->b($value);
  16. }
  17. }
  18.  
  19. class B {
  20. public function execute() {
  21. $a = new A();
  22. //a tu wywołanie "z zewnątrz"
  23. $a->doSomething('jakiś parametr');
  24. }
  25. }


Ten post edytował irmidjusz 4.09.2014, 08:38:04
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: 30.09.2025 - 22:07