PHP将值从变量赋值给函数

时间:2014-07-26 05:12:07

标签: php scope

如何为PHP函数赋值。我有这样的代码:

<?php
$val_id = "010105";

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

当我查询该函数时,$ val_id中的值无法发送到函数get_news。结果是空的。

请帮助解决这个问题。感谢

4 个答案:

答案 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()的局部变量使用。

答案 1 :(得分: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();

答案 2 :(得分:0)

试试这个!

  

get_news( “010105”);

     

function get_news($ val_id)

     

{

     

$ query = mysql_query“SELECT * FROM news WHERE val_id ='$ val_id'”;

     

}

答案 3 :(得分: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();