0

我有一堂课,我首先进行 SQL 检查以查看某些数据是否存在,如果不存在,则插入一条新记录。

我想以某种方式定义一个变量($feedback),表明我要么插入了一些东西,要么没有 - 我想在我的主 PHP 文件的回调中使用这个 var(我包含了类)

我的课

class registerVote {

function registerVote(){

}

function init() {
    //Define some vars  
    return true;
}

function save() {
        //Sql count query
        $res = mysql_query($sql) or die( mysql_error());
        $count = mysql_result($res, 0); 

        //If no records are found then INSERT
        if($count < 1){
            //Some INSERT query
            $feedback = "new";
        } else {
            $feedback = "old";
        }

    if($res) {
        return $feedback;
    }
}

}

我的 PHP 文件:

include_once ('../class/class_vote.php');
$registerVote = new registerVote();

    if($registerVote->init()) {
        if($registerVote->save()) {
            //Print out my $feedback from the class
        if ($feedback == "new") {
            echo "new";
        } else {
            echo "old";
        }
        }
    }

以上自然不起作用-所以我自然想知道我是否能够实现我试图说明的内容?

4

4 回答 4

2

只需捕获返回值:

include_once ('../class/class_vote.php');
$registerVote = new registerVote();

if($registerVote->init()) {
    $feedback = $registerVote->save();
    if($feedback) {
        //Print out my $feedback from the class
        if ($feedback == "new") {
            echo "new";
        } else {
            echo "old";
        }
    }
}

顺便说一句,save()应该总是返回一些东西。

于 2013-05-22T16:36:39.187 回答
1

您可以让您的registerVote::save()函数返回$feedback. 这似乎是一种合理的做法。

次要:如果$resfalse这种or die情况将触发并且您的脚本将退出,则不需要if周围的。return

于 2013-05-22T16:36:08.280 回答
0

您正确返回$feedback,但您应该考虑返回 a booleantrue或者false例如。但是,您需要存储$registerVote->save()调用的返回,然后您可以检查它。您也可以将init函数更改为__construct,这样您就不必调用它了。您的课程将是这样的:

class registerVote
{

    public function __construct()
    {
        //Define some vars  
        return true;
    }

    public function registerVote()
    {
    }

    public function save()
    {
        //Sql count query
        $res = mysql_query($sql) or die( mysql_error());
        $count = mysql_result($res, 0); 

        if($count === 0)
        {
            // store some stuff.
            return TRUE;
        }
        return FALSE;
   }
}

你的 PHP 文件应该是这样的:

include_once ('../class/class_vote.php');
$registerVote = new registerVote();

if($registerVote->save())
{
    echo "New!";
}
else
{
    echo "Old!";
}
于 2013-05-22T16:40:07.440 回答
0

返回要分配的值。

或者

在对象的静态属性上设置值。

class Feedback {
    static public $results;
}

然后你可以打电话

Feedback::$results = "new";
于 2013-05-22T16:37:59.810 回答