如何使用变量作为对象?
问题描述:
这是,我使用如何使用变量作为对象?
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;
<这不能确定,但这解释了我正在尝试做的事情。
答
返回数组作为一个对象:
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
答
设置一个公共读取该行作为对象属性,并将标题变量赋值给它。添加到您的类的顶部:
public $title = '';
然后在你的foreach变量指定为这样:
$this->title = $whatever;
答
我真不明白你正在尝试在此代码段做。 你的函数内容()不返回一个值。所以没有任何东西保存在你的$ test变量中。 Your content()函数使用从查询作为名称收到的键值创建一堆变量。所以如果你想获得你的“$ title”变量/键的价值,你只需要回应一下。
尝试:
echo $title;
你已经调用内容()函数之后。如果您的查询返回了某些内容并将“title”作为Key,则应该回显您正在搜索的标题的值。 如果你想是这样的:
$res = $classObject->content('cloud');
echo $res->title;
你必须创建这样一个对象,它有一个标题属性,并返回,在你的函数。
谢谢你,我不知道我怎么会通过这件事 – 2011-12-14 23:36:21
也打算建议mysql_fetch_object:http://us2.php.net/mysql_fetch_object – 2011-12-14 23:43:59