首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP从变量到函数赋值

问PHP从变量到函数赋值
EN

Stack Overflow用户
提问于 2014-07-26 05:12:06
回答 3查看 70关注 0票数 0

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

代码语言:javascript
复制
<?php
$val_id = "010105";

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

当我查询该函数时,来自$val_id的值不能发送到函数get_news。所以结果是空的。

请帮忙解决这个问题。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-26 05:15:44

这是一个范围界定问题。$val_id是一个全局变量,所以您的函数不知道它,除非您以某种方式告诉它。你有两个主要选择:

  • 将$val_id作为参数传递(推荐):

​

代码语言:javascript
复制
$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作为全局(不推荐):

​

代码语言:javascript
复制
$val_id = "010105";

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

get_news();
票数 0
EN

Stack Overflow用户

发布于 2014-07-26 05:15:28

您需要将val_id作为参数传递给函数。试试这个:

代码语言:javascript
复制
<?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
EN

Stack Overflow用户

发布于 2014-07-26 05:37:42

请允许我介绍一个更成熟的版本。

代码语言:javascript
复制
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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24967778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档