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();
答案 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');
}
}