请检查下面的代码,它在我期待结果时返回0.但是当我手动添加A+D
时它会返回5.Am我在循环中做错了什么?
<?php
define('A',1);
define('B',2);
define('C',3);
define('D',4);
define('E',5);
//echo A+D; returns 5
$name = 'EACE';
$len = strlen($name);
for($i = 0; $i<=$len; $i++)
{
$val += $name[$i];
}
echo $val; //returns 0
?>
答案 0 :(得分:3)
您需要使用constant(..)
按名称获取常量的值。试试这个:
for ($i = 0; $i < strlen($name); $i++) {
$val += constant($name[$i]);
}
答案 1 :(得分:1)
define('A',1);
define('B',2);
define('C',3);
define('D',4);
define('E',5);
//echo A+D; returns 5
$name = 'EACE';
$len = strlen($name);
$val = null;
for($i = 0; $i<=$len-1; $i++)
{
$val += constant($name[$i]);
}
echo $val;