Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] if(new class == true) ?
Forum PHP.pl > Forum > Przedszkole
Nicc0
Witam drogich użytkowników.

Mam do was proste pytanie na które nie umiem sobie odpowiedzieć. (w sumie dziesiątki pytań do google'a też mi nie dały odpowiedzi) Czy to ma prawo działać?

  1. if( new Classes\checkPage($this->get) == true ) {
  2. echo "yep";
  3. } else {
  4. echo "nope";
  5. }


Class'a checkPage:

  1. // Namespace
  2. namespace Library\Classes;
  3.  
  4. class checkPage {
  5. public function __construct($page) {
  6. if(is_array($page)) {
  7. foreach ($page as $key => $value) {
  8. if($key == 'page') {
  9. $filename = ROOT_DIR . '/Template/pages/' . $value . '.html';
  10. if (file_exists($filename)) return true;
  11. } return false;
  12. }
  13. } return false;
  14. }
  15. }


Dodam od siebie, że $this->get, jest tablicą. Na dodatek za każdym razem wyskakuje "yep", mimo tego że $_GET nie jest ustawione :/

Z góry dzięki wam za pomoc.
johny_s
Konstruktor nie powinien nic zwracać, a operator new zawsze zwraca instancje nowej klasy, która dla porównania z true jest prawdziwa (jak dasz === bedzie zawsze fałszywa)
Nicc0
Rozwiązanie banalne -.- aż wstyd się przyznawać. Przecież można tą funkcję wywołać statycznie :/

  1. if( Classes\checkPage::checkPage($this->get) == true ) {
  2. echo "yep";
  3. }


Johny_s, z '===' testowałem, najpierw chciałem rozwiązać ten problem metodą prób i błędów. Bez skutku, ale o tym że konstruktor nie powinien nic zwracać nie wiedziałem biggrin.gif
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.