2012-05-03 15 views
-2

私はこのコードを実行しましたが、私が望むように動作しません。私は文字列の一部を着色しようとしています。色は関数getcolorによって決定されます。これはraw transformと呼ばれる関数によって決定され、私のスイッチの場合、生のスコアを1から9のスコアに変換します。誰か助けてもらえますか? $colは、引数のために別の関数によって割り当てられます。つまり、それは$col= 0と定義されています。私のPHPコードでhslと関数を使った色付け

<?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);の戻り値を変数に代入しません。 colorSequence($seq,49,$truecol,1);を呼び出す前に$truecol = getcolor($score);のようにしてください。

+0

私はすでにそれを試みていて、何も変えなかったのですか? – user1338194

+0

プログラミングを最初に習得してください。 'getcolor()'は値を返しません。その関数を呼び出すときに2番目のパラメータを渡すことはありません。等 - それは基本的なプログラミングです... – feeela

+0

変数$ truecolとして各ケースをデカールすることによって私はそれを返していないですか? – user1338194

関連する問題