Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> is_callable
smiady
post 22.06.2015, 21:58:32
Post #1





Grupa: Zarejestrowani
Postów: 137
Pomógł: 2
Dołączył: 2.07.2007
Skąd: Ostrzeszów

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


Stworzyłem prostego MVC, gdzie z linku wyłowują mi się odpowiednie metody z odpowiednich klas.
I mam metodę actionBazaDanych, która mi się wyłowuje bez żadnych błędów.
Zastanawia mnie jednak to, dlaczego is_callable dla tej nazwy zwraca false.

  1. $nazwa= 'actionBazaDanych';
  2.  
  3. if(is_callable($nazwa)) {
  4. echo 'OK';
  5. } else {
  6. echo 'FAIL';
  7. }


Rezultatem tego kodu jest wynik FAIL.
Jeśli dobrze rozumiem is_callable sprawdza czy podany argument może być nazwą funkcji lub metody.
Skoro tak to, dlaczego dla nazwy actionBazaDanych zwraca false, jeśli nazwa tej metody mi odpali ?
Go to the top of the page
+Quote Post
Comandeer
post 22.06.2015, 22:24:53
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


  1. <?php
  2.  
  3. class A
  4. {
  5. public function action()
  6. {
  7.  
  8. }
  9. }
  10.  
  11. var_dump(is_callable('action'), is_callable(['A', 'action']), is_callable('action', true));


Sam mówisz, że jest to metoda jakiejś klasy - więc trzeba sprawdzić czy istnieje w kontekście danej klasy. Sama nazwa przekazana do is_callable szuka funkcji globalnej o takiej nazwie, nie metody klasy. Natomiast sprawdzenie czy dana nazwa może być nazwą funkcji/metody to kwestia dostawienia true jako drugiego parametru


--------------------
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: 26.09.2024 - 15:43