2016-06-24 12 views
2

私はクラスで遊んでいて、どのように動作するのか理解していません。関数の間で変数を渡す方法を説明する人もいました。私の現在の問題は間違いです。クラスからエラーを抽出して画面に出力する方法。私の出力はusernameのみです。どのようにエラーを取得するには?クラス内でのPHPエラーの印刷

class form 
{ 
    protected $username; 
    protected $password; 
    protected $errors = array(); 

function __construct($username, $password){ 
    $this->username = $username; 
    $this->password = $password; 
} 
public function get_errors() 
{ 
    return $this->errors; 
} 

public function getPassword(){ 
    return $this->password; 
} 

public function getUserName() { 
    return $this->username; 
    return $this->errors = "No MySQL connection."; 
} 

} 

$test = new form('name1', 'passw2'); 
echo $test->getUserName(); 
+0

エラーを取得する方法は? - 'echo implode("
"、$ test-> getErrors()); ' –

+3

は2回返しません。 –

+0

ロジックがない場合は内部はありません。例usernameがnullの場合、error = 'usernameを設定してください'。そのようなもの –

答えて

1

関数内で2回返すことはできません。しかし、あなたは以下のように欲しいものを達成することができます: -

public function getUserName() { 
    $this->errors = "No MySQL connection."; 
    return $this->username.'<br/>'.$this->errors; 
} 

注: - これは解決策ですが、あなたのコードは何の平均を持っていません。あなたは、あなたがwebconsoleまたはerror logにこのエラー出力を引く簡単なことができますエラーが発生した場合、いくつかの有用なものに

1

トライスロー例外

public function getUserName() { 
    if($this->errors) { 
    throw new Exception($this->errors); 
    } 
    return $this->username; 
} 

$test = new form('name1', 'passw2'); 

try { 
    echo $test->getUserName(); 
} catch(Exception $error) { 
    echo 'Error:'.$error->getMessage(); 
} 

を行う必要があります。

+0

これまでのところ最高の答え。なぜ人々は、2004年に(PHP用に)解決されたupponの問題を、他の言語ではるかに早く解決しようとしているのですか?私はほとんどのPHP質問がプログラミングの質問であり、言語特有ではないように感じます。 – SparK

+0

@SparK魔法の方法、例外、取引や他の機能の言語を使用して多くの人々のために、悪い実用的な....ありがとう、私はなぜ理解できないのですか? 'returnだけ書くことが簡単かもしれません。 return;返す;そして 'return'をもう一度書くのを忘れた... – Naumov

+0

who downvote、なぜ私に言いなさいか? – Naumov

1
class form 
{ 
    protected $username; 
    protected $password; 
    protected $errors = array(); 

    function __construct($username, $password){ 
     $this->username = $username; 
     $this->password = $password; 
    } 
    public function getErrors() 
    { 
     return $this->errors; 
    } 

    public function getPassword() 
    { 
     return $this->password; 
    } 

    public function getUserName() 
    { 
     /* Add some an error to an error's array */ 
     $this->errors[] = "No MySQL connection."; 
     return $this->username; 
    } 
} 

$test = new form('name1', 'passw2'); 
echo $test->getUserName(); 
var_dump($test->getErrors()); /* Get errors from a class */