2014-07-26 224 views
0

如何賦值給PHP函數。我有這樣的代碼:PHP將變量賦值給函數

<?php 
$val_id = "010105"; 

function get_news() 
{ 
    $query = mysql_query"SELECT * FROM news WHERE val_id = '$val_id'"; 
} 

當我查詢該函數時,$ val_id的值不能發送到函數get_news。所以結果是空的。

請幫助解決這個問題。謝謝

+0

havr你試過把varibale放在函數裏面嗎? –

回答

0

這是一個範圍問題。 $val_id是一個全局變量,所以你的函數不知道它,除非你以某種方式告訴它它。你有兩個主要選擇:

  • $val_id作爲參數(推薦):

$val_id = "010105"; 

function get_news($val_id) 
{ 
    $query = mysql_query"SELECT * FROM news WHERE val_id = '$val_id'"; 
} 

get_news($val_id); 
  • 使用$val_id作爲一個全球性的(不推薦):

$val_id = "010105"; 

function get_news() 
{ 
    global $val_id; 
    $query = mysql_query"SELECT * FROM news WHERE val_id = '$val_id'"; 
} 

get_news(); 
+0

不錯......現在按我的意願工作。謝謝埃德 – hiDayurie

+0

很高興幫助! –

0

您需要通過val_id作爲該函數的參數。試試這個:

<?php 
$val_id = "010105"; 

function get_news($val_id) { 
    $query = mysql_query("SELECT * FROM news WHERE val_id = $val_id"); 
} 

這是因爲你設置val_id功能之外,但它沒有設置功能。

通過將它傳遞給括號,您可以將其作爲局部變量get_news()提供。

0

試試這個!

get_news(「010105」);

功能get_news($ val_id)

{

$查詢=請求mysql_query 「SELECT * FROM消息WHERE val_id = '$ val_id'」;

}

0

請允許我介紹一個比較成熟的版本。

class News 
{ 
    private $value_id; 

    public function News($value_id) { 
     $this->value_id = $value_id; 
    } 

    public function get() 
    { 
     $query = sprintf("SELECT * FROM news WHERE val_id = %d", $this->value_id); 
     return mysql_query($query); 

    } 
} 

$news = new News($val_id); 
$news->get();