2013-06-20 3 views
-1

Как получить возвращаемое значение функции без повторного запуска?проверить возвращаемое значение функции без повторного запуска

я использовал это, но это выполнить функцию снова

моя функция:

function article() 
{ 
    if($_GET['action'] == "article" && !empty($_GET['id'])) 
    { 
     $id = intval($_GET['id']); 
     $article = array(); 
     $selectArticle = mysql_query("SELECT * FROM articles WHERE id='$id'"); 
     $rowArticle = mysql_fetch_array($selectArticle); 

     $id = $rowArticle['id']; 
     $title = stripcslashes($rowArticle['title']); 
     $category = stripcslashes($rowArticle['category']); 
     $image = stripcslashes($rowArticle['image']); 
     $description = stripcslashes($rowArticle['description']); 
     $full_description = stripcslashes($rowArticle['full_description']); 
     $keywords = stripcslashes($rowArticle['keywords']); 
     $url = "/article/" . $rowArticle['id'] . "/" . str_replace(" ","-",stripcslashes($rowArticle['title'])); 
     $article = array('id' => $id, 'title' => $title, 'category' => $category, 'image' => $image, 'description' => $description, 'full_description' => $full_description, 'keywords' => $keywords, 'url' => $url); 
     mysql_query("UPDATE articles SET visits=visits+1 WHERE id='$id'"); 
    } 
    return $article; 
} 

как проверить это

if (article() != null) 
{ 
    $article = article(); 
    return $article['title']; 
} 
+0

вы также можете хранить статьи() к переменной и использовать переменную $ статье вместо статьи() – daison12006013

ответ

2

Это должно делать то, что вы хотите

if (null !== ($article = article())) { 
    return $article['title']; 
} 

Это означает «одновременное» назначение и сравнение. Сначала эта часть оценивается: ($article = article()). Он дает значение null или array, которое хранится в $article.
Его результат (или array) затем оценивается структурой if: if (null !== $article) и нормальным потоком возобновляется.

+0

эта часть не запустить функцию снова? -> ($ article = article()) –

+0

См. мой обновленный ответ. –

+0

У меня есть запрос mysql update в функции article(), и это выполняется снова, а запрос обновления выполняется дважды. функция статьи, выполненная до того, как я не захочу ее снова выполнить –

0

Измените проверку.

$article = article(); 
return $article != null ? $article['title'] : null; 
1

как так

$article_var = article(); 

if ($article_var!=null) 
{ 
     //do stuff 
     //return $article['title'] // etc 
} 
+0

функция, выполненная до того, как я не хочу выполнить его снова –

Смежные вопросы