这是我使用的课程中的功能
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;
<这不是肯定的,但这解释了我想要做的事情。
答案 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,并在函数中返回该对象。