2012-05-03 10 views
-2

我已經完成了這段代碼,但它並不按照我想要的方式工作。我正在嘗試着色一段字符串。顏色由函數getcolor決定,該函數由一個稱爲原始轉換的函數決定,該函數將原始分數轉換爲我的開關盒中1-9的分數。任何人都可以提供幫助嗎? $col由另一個函數分配 - 爲了參數可以說它被定義爲:$col= 0使用hsl和我的php代碼着色

<?php 

$raw= 650; 
function rawtransform($raw) { 
    $score = (int)($raw/50)-9; 
} 
    //========================================================================== 
//   Function to decide which color system       // 
//========================================================================== 
function getcolor($score, $col) 
{ 
switch ($score){ 
// to return the function best way is to declare the case outcome as a variable eg.$truecol 
case 1: /*500-550(Raw Score)*/ 
    $truecol="<span style=\"color: hsl($col,100%,90%);\">"; 
    break; 
case 2: //550-600 
    $truecol="<span style=\"color: hsl($col,100%,80%);\">"; 
    break; 
case 3: //600-650 
    $truecol="<span style=\"color: hsl($col,100%,70%);\">"; 
    break; 
case 4: //650-700 
    $truecol="<span style=\"color: hsl($col,100%,60%);\">"; 
    break; 
case 5: //700-750 
    $truecol="<span style=\"color: hsl($col,100%,50%);\">"; 
    break; 
case 6: //750-800 
    $truecol="<span style=\"color: hsl($col,100%,40%);\">"; 
    break; 
case 6: //800-850 
    $truecol="<span style=\"color: hsl($col,100%,30%);\">"; 
    break; 
case 7: //850-900; 
    break; 
case 8: //900-950 
    $truecol="<span style=\"color: hsl($col,100%,20%);\">"; 
    break; 
case 9: //950-1000 
    $truecol="<span style=\"color: hsl($col,100%,10%);\">"; 
    break; 
    } 
} 

    $query="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"; 

$seq=chunk_split($query,50,"<br />"); 
getcolor($score); 
function colorSequence ($seq,$position,$truecol,$TFBSlength){ 
    $nucleotides = str_split($seq); 
    foreach ($nucleotides as $index => $nucl){ 
     if ($index == $position){ 
      echo $truecol; 
     } 
     if ($index == $position + $TFBSlength){ 
      echo "</span>"; 
     } 

     echo $nucl; 
    } 
    echo "\n"; 
} 
colorSequence($seq,49,$truecol,1); 
?> 

輸出不包括所選核苷酸的着色。有人知道爲什麼

+0

你沒有解釋是什麼問題。 – Nadh

回答

0

您不會將返回值getcolor($score);分配給變量。我打賭它應該像$truecol = getcolor($score);之前致電colorSequence($seq,49,$truecol,1);

+0

我已經嘗試過了,沒有改變任何東西? – user1338194

+0

嘗試先學習編程:你的'getcolor()'不返回一個值;調用該函數時不傳入第二個參數;等等 - 這是編程的基本... – feeela

+0

通過decalring每個案例作爲變量$ truecol我不回來嗎? – user1338194