如果条件不为真,则从任何类方法返回值

时间:2016-09-14 10:41:04

标签: php

OOP&功能新手在这里

如果在我班级的某个方法中,如果值不正确,我将如何返回值?我希望能够在类中执行每个方法并在该方法中条件不真实时返回值,否则执行next方法。

我认为这可能比从索引页面调用每个方法更好。

我想做一个更复杂的登录类,但我正在使用这个示例脚本来练习。

我没有得到返回值' Boo'或者'都没有'我只得到了“moo'如果我进入Moo。

我知道开始这个过程的唯一方法是$ word_check = $ words-> test1(); 因为它只会返回我认为的test1方法的值。

我如何开始这个过程,以便达到我的需要?

索引页

<?php
require_once('Classes/words.php');
if (isset($_POST['submit'])) {    
$word_check = $words->test1();
if ($word_check !== true) {    
$the_message = $word_check;    
} else {    
header('Location: main.php');
}
}
?>  
<form action="" method="post">    
<label>Word</label>
<input type="text" class="form-control" name="word" value="<?php echo $word; ?>" >    
<h4 class="bg-danger"><?php echo $the_message; ?></h4>    
<input type="submit" name="submit" value="Submit" class="btn btn-primary">
</form>

词类

<?php
Class Words {    
public $word;
function __construct() {    
$this->word = trim($_POST['word']);
}
public function test1() {
if ($this->word == 'Moo') {    
return "Moo";    
} else {    
$this->test2();    
}
}
public function test2() {    
if ($this->word == 'Boo') {    
return "Boo";    
} else {    
return "Neither!";    
}
}
}
$words = new Words();

3 个答案:

答案 0 :(得分:1)

Make it one function

public function test1() {

    if ($this->word == 'Moo') {
        return "Moo";
    } 
    if ($this->word == 'Boo') {
        return "Boo";
    }
    return "Neither!";
    }

答案 1 :(得分:1)

test2()函数返回值,但在函数 test1()的调用$this->test2();中,在使用return关键字之前不会返回任何内容。所以解决方案是return $this->test2();

答案 2 :(得分:0)

你忘了创建

的对象
  

然后只有构造函数会打电话给你,你会得到$ this-&gt; word

的价值
require_once('Classes/words.php');

if (isset($_POST['submit'])) {
// creating object time constructor will call
$words = new Words();
$word_check = $words->test1();

if ($word_check !== true) {

  $the_message = $word_check;

} else {

  header('Location: main.php');

}
}