我对PHP Class感到困惑。我知道它是如何工作但仍然困惑。需要帮助来解决问题。
我的问题是我想从数据库中检查一些东西,为此我需要创建至少三到四个函数。然后我将检查所有先前的函数是否返回true。如果所有都返回true,则第六个函数将起作用,或者如果任何单个函数返回false,则第七个函数将运行。
这样的剧本,
<?php
class Function{
function one(){
//does database query
if(success){
return true;
}
else {
return false;
}
}
function two(){
//does database query
if(success){
return true;
}
else {
return false;
}
}
function three(){
//does database query
if(success){
return true;
}
else {
return false;
}
}
function four(){
//does database query
if(success){
return true;
}
else {
return false;
}
}
function five(){
//checks what all function are returning
if(all functions are true){
do_sixth_function();
}else{
do_seventh_function();
}
}
function do_sixth_function(){
//show details to user.
}
function do_seventh_function(){
//forward user to somewhere.
}
}
?>
这样的事情,但问题是我不知道如何创建第五个函数来检查每个函数的所有值。
我可以/我应该创建这样的函数吗?
function five(){
//checks what all function are returning
if((one() === true) AND (two() === true) AND (three()() === true) AND (four() === true)){
do_sixth_function();
}else{
do_seventh_function();
}
}
如果有人能帮助我,请告诉我。不管怎么说,多谢拉。 :d
答案 0 :(得分:3)
您可以执行以下操作:
$methods = array('one', 'two', 'three', 'four');
foreach ($methods as $v) {
if (!$this->$v()) { // Or if (!call_user_func(array($this, $v))) {
$this->seven();
break;
}
$this->six();
}
答案 1 :(得分:1)
或者你可以尝试这样的事情......
function one(){
if(this is true){
function two();
return true;
}
else {
function false_value();
return false;
}
}
function two(){
if(this is true){
function three();
return true;
}
else {
function false_value();
return false;
}
}
function false_value(){
//this function will handle all invalid or false values
}
所以你可以继续这样做。通过这种方式,您的函数将像循环一样工作,如果您想在数据库中插入数据,它将帮助您获得更准确的数据,它也将帮助您获取数据。意味着如果第一个条件为假,那么它将调用将处理所有错误条件的函数。
答案 2 :(得分:0)
$methods = array('one', 'two', 'three', 'four');
$found = false;
foreach ($methods as $v) {
if (!$this->$v()) {
$found = true;
break;
}
}
if(!$found) $this->do_sixth_function();
else $this->do_seventh_function();