我需要计算2个值的百分比以及是否向上或向下箭头。 好的,所以我创建了两个功能来验证,箭头和百分比。
private function porcentagem($a,$b){
$re = $b * 100 / $a;
return print round($re,0)."%";
}
private function seta($a,$b){
if($a < $b){
return "up";
}else{
return "down";
}
}
我创建了一个将数据返回到数组的函数,以使其更有条理。
private static function retornar($a,$b){
return array($a,$b);
}
现在检查数据类别的函数:
private function new_user(){
$q = mysql_query("SELECT * FROM usu4r10s WHERE premium IS NULL AND " . $this->antes);
$a = mysql_num_rows($q);
$q = mysql_query("SELECT * FROM usu4r10s WHERE premium IS NULL AND " . $this->depois);
$b = mysql_num_rows($q);
return self::retornar($this->porcentagem($a,$b),$this->seta($a,$b));
}
记住&#34; antes&#34;和&#34; depois&#34;是一个变得更有条理的变量。
var $antes = "DATEDIFF(NOW(), `data`) < 30";
var $depois = "DATEDIFF(NOW(), `data`) < 0";
现在最终的功能我遇到了问题。
public function _build(){
$output =
' <span class="mws-report-content">'.
' <span class="mws-report-title">Novos Usuários</span>'.
' <span class="mws-report-value '.$this->contas_premiuns(array(0)).'">'.$this->contas_premiuns(array(1)).'</span>'.
' </span>';
try{
return print $output;
}catch (Exception $e){
return print $e;
}
}
唯一的问题是我不知道如何在函数中返回2个值。
答案 0 :(得分:0)
首先,你永远不应该使用return print(...);
,因为那只会返回print语句的结果,几乎总是true
。其次,从相同的函数返回多个值并不是很好的设计,函数通常只有一个目的。
您不能在彼此之后有两个return语句,因为PHP将在遇到第一个return语句时退出该函数。如果您确实想要从函数返回两个值,则必须使用您在发布的代码中使用的相同方法return array($firstValue, $secondValue);
甚至return array('firstIdentifier' => $firstValue, 'secondIdentifier' => $secondValue);
。
答案 1 :(得分:0)
您只能从函数调用中返回一个(或否)值,但返回的值可以是数组或对象。所以
return array($value1, $value2);
将返回带有两个值的数值数组。
return array('key1' => $value1, 'key2' => $value2);
会返回一个带有两个值的关联数组。
$instance = new stdClass();
$instance->key1 = $value1;
$instance->key2 = $value2;
return $instance;
将返回标准类的对象,其中包含两个值。
<强> BUT ... 强>
虽然这些示例允许您实现所需的结果,但作为最佳实践,请考虑重构您的函数以仅返回一个实际值。