2011-09-26 23 views
0

請檢查我的代碼如下,它返回0,而我期待的結果14.但是當我手動添加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 

?> 

回答

3

您需要使用constant(..)來獲取名稱常量的值。試試這個:

for ($i = 0; $i < strlen($name); $i++) { 
    $val += constant($name[$i]); 
} 
+0

感謝rfausak。順便說一句,爲什麼我的代碼無法正常工作? – AssamGuy

+0

我要遲到:)對不起 – Nicklasos

+1

因爲您需要使用:strlen($ name)-1 – Nicklasos

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;