如何使用变量作为对象?

时间:2011-12-14 23:15:36

标签: php mysql oop

这是我使用的课程中的功能

public function content($search) {
        $this->dbconnection();
        $search = mysql_real_escape_string($search);

        $q= mysql_query("SELECT title FROM xx WHERE title LIKE '%$search%'");
        $s = mysql_fetch_array($q);
        foreach ($s as $key => $val) {
            $$key = $val;
        }

    }

和index.php文件

$cl= new Class;
$test = $cl->content('cloud');

问题是

我怎样才能回显我在foreach循环中设置的变量?

$test->title;<这不是肯定的,但这解释了我想要做的事情。

3 个答案:

答案 0 :(得分:1)

将数组作为对象返回:

public function content($search)
{
    $this->dbconnection();
    $search = mysql_real_escape_string($search);

    $q = mysql_query("SELECT title FROM xx WHERE title LIKE '%$search%'");
    $s = mysql_fetch_assoc($q);

    return (object)$s;
}

然后在你的代码中:

$cl= new Class;
$content = $cl->content('cloud');
echo $content->title;

或者,您可以使用mysql_fetch_object

将行作为对象获取

答案 1 :(得分:1)

在您的类中设置公共属性并为其分配title变量。将其添加到班级的顶部:

public $title = ''; 

然后在foreach中分配变量:

$this->title = $whatever;

答案 2 :(得分:1)

我真的不明白你在这段代码中想要做什么。 您的函数content()不返回Value。因此,$ test变量中没有任何内容。 您的content()函数使用从Query as Name接收的键值创建一组变量。因此,如果您想获得“$ title”变量/键的值,您只需回应它。

尝试:

echo $title;

调用content()函数后。如果您的查询返回了一些内容并且“title”作为Key,那么这应该回显您正在搜索的标题的值。 如果你想做类似的事情:

$res = $classObject->content('cloud');
echo $res->title;

您必须创建一个具有标题属性的Object,并在函数中返回该对象。