数组的索引看起来像函数名



我学习了laravel和php,最近我遇到了一些问题,我试图描述:我试图模仿男性的平均年龄。我正在使用这个功能,我在与laravel相关的论坛上发现:$resultMale = DB::select($maleSQL, array(1));

我的问题是,它返回从这个查询中获取索引的数组

$maleSQL = "SELECT books.name, books.book_date, AVG(reviews.age) FROM books, reviews where name='{$this->name}' and sex='m' and {$this->condition};";

因此,如果我想访问索引为"0"的数据;name";我使用:

echo "{$resultMale[0]->name}";

但当我试图访问AVG(reviews.age(下的数据时,我的问题就开始了

echo "{$resultMale[0]->AVG(reviews.age)}";

它被检测为此数组内的函数,而不是索引。laravel 错误

我试过使用foreach循环以及:

$bypassFunctionAVG="avg(reviews.age)";
echo "{$resultMale[0]->{$bypassFunctionAVG}}";

我也尝试过重命名这个索引,但没有成功。所以我的问题来了:如何在这个索引下回显这个数组的数据?

这可能有效。。。

$avg = $resultMale[0]->{"AVG(reviews.age)"}
echo $avg;

否则,请尝试使用别名(注意,"AS avg"(

$maleSQL = "SELECT books.name, books.book_date, AVG(reviews.age) AS avg FROM books, reviews where name='{$this->name}' and sex='m' and {$this->condition};";
echo $resultMale[0]->avg;

此外,双引号对于回显变量也不是必需的,正如您在上面所做的那样。它们在某些情况下是有用的,但不是必需的。echo$var、echo"$var"和echo"{$var}"都会做同样的事情。

这些事情会有同样的结果。。。

$value = 25;
echo "The value is $value.";
echo "The value is {$value}.";
echo "The value is " . $value . ".";
echo 'The value is ' . $value . '.';

这些将不会产生与上述相同的结果。。。

// use {} around non-trivial variable expressions
echo "The value is $object->value.";
// single quotes don't do anything to variables
echo 'The value is $value.';

相关内容