2014-08-31 3 views
0

Два файла: - Login.php - Регистрация.Использование класса PHP - неопределенная переменная ошибка

Login.php имеет две переменные. Registration.php имеет три.

Login.php имеет только две переменные, однако класс использует три переменные и возвращает ошибку при вызове метода, эта переменная не определена.

Пожалуйста, если приведенное выше объяснение не дает мысли прочитать комментарии в коде.

Registration.php

include("validate_class.php"); 
    //Fields in registration 
    $username     = ""; 
    $password     = "brokenship"; 
    $email      = "[email protected]"; 

    //Instantiating my class. 
    $instantiateClass   = new validate_class($username, $password, $email); 

    //This is called in registration.php file. This validates the three fields registration.php has. $email, $password, 
    $instantiateClass->validate_empty(); 

login.php

include("validate_class.php"); 
//Fields in login 
$username     = ""; 
$password     = "brokenship"; 

//Instantiating my class. 
$instantiateClass   = new validate_class($username, $password, $email); 

//This is called in registration.php file. This validates the three fields registration.php has. $email, $password, 
$instantiateClass->validate_empty(); 

//*****Now, here's the problem. I wanna only give two parameters..*****// 

validate_class.php

class validate_class { 
    function __construct($username, $password, $email){ 

     //Regular value 
     $this->username       = $username; 
     $this->password       = $password; 
     $this->email       = $email; 

     //Add empty function 
     $this->empty_username     = empty($username); 
     $this->empty_password     = empty($password); 
     $this->empty_email      = empty($email); 
    } 

    function validate_empty(){ 
     if(($this->empty_username) or ($this->empty_password) or ($this->empty_email)){ 
      echo "Fill all the fields"; 
     } 
    } 
} 
+0

@class \t $ instantiateClass \t \t \t = новый validate_class ($ имя пользователя, $ пароль, $ электронная почта); Говорит, что в этой строке есть неопределенная переменная ($ email). Проверьте файл login.php выше, пожалуйста. – 1to1k

+0

Я не понимаю. Он говорит, что '$ email' не определен, потому что он не определен. Каков твой вопрос? Что значит «Я хочу только дать два параметра»? –

+0

Mark M Как вы можете видеть, я хочу, чтобы форма login.php тоже проверялась. Однако, поскольку у него есть только две переменные, которые необходимо проверить, я не могу дать ей третью переменную. И поэтому он возвращает ошибку. Точка: я не могу дать ей третий аргумент, так как он не существует. – 1to1k

ответ

0

Показывает подсказку, если не по электронной почте не предусмотрено:

class validate_class { 
function __construct($username, $password, $email=false){ 

    //Regular value 
    $this->username       = $username; 
    $this->password       = $password; 
    $this->email       = $email; 

    //Add empty function 
    $this->empty_username     = empty($username); 
    $this->empty_password     = empty($password); 
    $this->empty_email      = $email != false && empty($email); 
} 

function validate_empty(){ 
    if(($this->empty_username) or ($this->empty_password) or ($this->empty_email)){ 
     echo "Fill all the fields"; 
    } 
} 
} 
Смежные вопросы