我是一个编程初学者。我正在使用类继承编写代码。下面是完整的代码:
require_once('db.php');
class Activity extends DatabaseCall //this is in db.php
{
public $name, $link, $activity_id;
public function oneActivity( $name, $link, $activity_id )
{
$this->name = $name;
$this->link = $link;
$this->activity_id = $activity_id;
}
private function activitiesArrays()
{
$this->sqlActivities(); //a protected function inherited from Parent
}
//Returns array of name + link + activity_id for random activity.
//Works with function activitiesArrays(), which returns An Array of arrays of
//names,links,and id's.
// @param <array> $namesLinksIds_Arrays An Array of arrays of names, links,and
//id's.
public function makesRandomActivity($namesLinksIds_Arrays)
{
$list($name, $linkk, $id) = $namesLinksIds_Arrays;
$length = count($name);
$rand = rand(0, $length-1);
$n = $name[$rand];
$l = $linkk[$rand];
$i = $id[$rand];
oneActivity($n, $l, $i);
}
}
如果我注释掉这段代码,这段代码中的所有内容都有效:
public function makesRandomActivity($namesLinksIds_Arrays)
{
$list($name, $linkk, $id) = $namesLinksIds_Arrays;
$length = count($name);
$rand = rand(0, $length-1);
$n = $name[$rand];
$l = $linkk[$rand];
$i = $id[$rand];
oneActivity($n, $l, $i);
}
请帮我弄清楚为什么这个代码不工作。任何帮助/建议/提示都非常感谢。
下面一行是错误的:
$list($name, $linkk, $id) = $namesLinksIds_Arrays;
您希望使用 list()
语言结构—因此,删除$
:
list($name, $linkk, $id) = $namesLinksIds_Arrays;
使用您所做的,PHP将$list(...)
解释为调用一个函数,该函数的名称将包含在(不存在) $link
变量中——关于此,请参阅变量函数。
这基本上意味着您试图将$namesLinksIds_Arrays
分配给函数调用-这就是为什么您得到以下错误消息的原因:
Fatal error: Can't use function return value in write context