2013-06-20 34 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
其结果(nullarray)然后通过if结构进行评估:if (null !== $article)并恢复正常流程。

+0

这部分不再次运行功能? - >($ article = article()) –

+0

查看我更新的答案。 –

+0

我有一个更新MySQL文章()函数中的查询,并再次执行它,更新查询运行两次。文章函数执行之前,我不想再次执行它 –

0

修改检查一下。

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

像这样

$article_var = article(); 

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

之前执行的功能我不想再次执行它 –

相关问题