在代码处理中使用变量名称,如$ number01使用它的值,而不是名称

时间:2013-06-10 12:25:04

标签: php

如此更好的例子(很难给出这个问题的标题)

想象我在php中有变量

 $number1 = 10;
 $number2 = 30;
 $number3 = 23;

..等等..

我只是想算一个算术平均值但不喜欢

($ number1 + $ number2 + $ number3)/ 3因为打字太多(只有3个数字)

但使用类似

的内容
 $temp=0;
 for ($i=1;$i<50;$i++){


 $temp=$temp+$number."$i";   <- this is what I don't know how to define..

 }

和类似的,如何回显像

这样的数字的所有值
for ($i=1;$i<50;$i++){

 echo $number.$i;   <- but this is not working..

 }

我希望我描述得很好,谢谢你的帮助!

4 个答案:

答案 0 :(得分:3)

可以使用变量变量来完成,但它很难看:

 $temp=0;
 for ($i=1;$i<50;$i++){
     $temp=$temp+(${$number.$i});
 }

变量变量有一个限制,你不知道这个变量有多高。您还需要检查是否先设置变量。更好的解决方案是将每个变量存储在一个数组中,您可以轻松地迭代:

 $arr = array();
 $arr[] = 10;
 $arr[] = 30;
 $arr[] = 23;

$temp = 0;
foreach($arr as $val)
{
    $temp += $val;
}

答案 1 :(得分:1)

$number = array(10,20,30);
echo array_sum($number);

另一个解决方案与for循环

相同
$number = array(10,20,30);
$count = count($number);
$sum = 0;
for($i = 0; $i < $count ; ++$i) $sum += $number[$i];

或foreach

$number = array(10,20,30);
$count = count($number);
$sum = 0;
foreach($number as $n) $sum += $n;

有很多方法可以将项目添加到数组中,例如

$number  = array(10,20,30);

$number  = array();
$number[] = 10; $number[] = 20; $number[] = 30;
$number[0]= 10; $number[1] = 20; $number[2] = 30;

$number = array();
array_push($number, 10, 20, 30);   

但最简单实用的解决方案是使用数组和array_sum()函数。

数组和 - 计算数组中值的总和

答案 2 :(得分:0)

使用数组

$number[0] = 10;
$number[1] = 20;
$number[2] = 23;

for ($i=1;$i<count($number);$i++) {
  echo $number[$i]; //now this works.
}

答案 3 :(得分:0)

将所有这些值放入数组而不是使用不同的变量可能更好。这使得以后更容易添加,并允许您循环:

foreach($myArray as $number){
    echo $number;
}

如果您仍然需要/需要使用变量,可以使用变量:

$temp=0;
 for ($i=1;$i<50;$i++){

$numberName = "number".$i;
 $temp=$temp + $$numberName;//Note the $$ syntax.

 }

$$foo将是名称存储在$foo中的变量的值。

最后一点。小心变量变量,因为它们可能导致代码混乱或不可读。