2016-04-03 10 views
0

Ich habe eine PHP-Funktion.Funktion kehrt nur zurück FALSE

Meine Funktion gibt nur FALSE zurück, auch wenn Gleichheit wahr ist. Ich verwende Debug, um zu sehen, ob meine Funktion TRUE zurückgeben kann.

bool(false) string(14) "[email protected]" object(stdClass)#25 (1) { ["email"]=> string(14) "[email protected]" } 

Ich habe 2 Strings, zuerst zurückkehrt [email protected] und 2. Saite zurückkehrt [email protected] ... aber wenn die Bedingung noch FALSCH zurück.

Was ist falsch in meiner Funktion?

Debug:

   var_dump($this->input->post('email')); 
       var_dump($this->_email($this->input->post('email'))); 
       die(); 
+0

'$ this-> E-Mail()' gibt ein 'stdClass', kein' string' .. Das wird nicht gleich sein. Ihr Objekt enthält ein Mitglied 'email', das ist, was Sie mit Ihrer ersten Zeichenfolge vergleichen sollten. – Brice

+0

oh, hast du recht. aber wie kann ich die email [string] aus dem objekt extrahieren? Ich bin Anfänger mit Codeigniter. Wenn Sie mir das erklären können, dann genieße ich wirklich – RedoColor

+0

Auch nur $ this-> load-> view ('login/template_view', $ this -> _ data); 'ohne' return'. – Tpojka

Antwort

0

Sie eine Zeichenfolge an ein Objekt zu vergleichen. Damit der Vergleich funktioniert, müssen Sie die Zeichenfolge mit der Eigenschaft email des Objekts vergleichen. Sie können auf eine Objekteigenschaft zugreifen, indem Sie -> verwenden oder eine Methode verwenden. Sie können mehr über die PHP-Objekte here und here lesen.

für Ihren Code zu arbeiten, um ersetzen:

if ($this->input->post('email') == $this->_email($this->input->post('email'))) 

mit

if ($this->input->post('email') == $this->_email($this->input->post('email'))->email) 
+0

danke für Hilfe! – RedoColor