我有一个类,我首先进行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";
}
}
}
以上自然不起作用 - 所以我自然想知道我是否能够实现我试图说明的内容?
答案 0 :(得分: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()
应该总是返回一些东西。
答案 1 :(得分:1)
您可以让registerVote::save()
函数返回$feedback
。这似乎是一种合理的做法。
轻微:如果$res
为false
or die
案例已触发且您的脚本将退出,则if
周围不需要return
答案 2 :(得分:0)
返回要分配的值。
或者
在对象的静态属性上设置值。
class Feedback {
static public $results;
}
然后你可以打电话
Feedback::$results = "new";
答案 3 :(得分:0)
您正确返回$feedback
,但您应该考虑返回boolean
,true
或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!";
}