2013-05-22 2 views
0

У меня есть класс, где я сначала делаю проверку SQL, чтобы увидеть, существуют ли какие-то определенные данные, а если нет, то я ВСТАВЛЯЮ новую запись.Определение объявленной переменной за пределами моего класса

Я хотел бы, чтобы каким-то образом определить переменную ($ обратной связи), что указывает либо ив вставленный то или Havent - Я хочу использовать этот вар в обратный вызов в моей основной PHP файл (где ив включен класс)

Мой класс

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 FILE:

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"; 
     } 
     } 
    } 

выше, естественно, не работает - так им естественно Wonde если им удастся добиться того, что Ив попытался проиллюстрировать?

ответ

1

Вы можете вернуть функцию registerVote::save()$feedback. Это кажется разумным способом сделать это.

Minor: если $res является falseor die случая вызвал и ваш сценарий выхода, то if вокруг return не требуется.

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() всегда должен возвращать что-то.

0

вернуть значение, которое необходимо назначить.

Или

Установите значение на статическое свойство объекта.

class Feedback { 
    static public $results; 
} 

, то вы можете позвонить

Feedback::$results = "new"; 
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!"; 
} 
Смежные вопросы