2017-01-16 126 views
2

我目前正在編寫一個密鑰密碼函數,以便以後可以通過單元測試進行測試。我對PHP很陌生,我很努力從同一個類中調用一個函數。這裏是代碼:調用函數(PHP)

<?php 
class Code{ 

public function keyCipher($code){ 
    $alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
    $alphArr = str_split($alphabet); 
    $codeArr = str_split($code); 
    $cipher = array(); 
    $counter = 0; 
    foreach($codeArr as &$char1){ 
     foreach($alphArr as &$char2){ 
      if($char1 == $char2){ 
       if(!in_array($char1, $cipher)){ 
        $cipher[$counter] = $char1; 

        $counter++; 
       } 
      } 
     } 

    } 
    foreach($alphArr as &$char1){ 
     if(!in_array($char1, $cipher)){ 
      $cipher[$counter] = $char1; 

      $counter++; 
     } 
    } 

    return implode($cipher); 

} 

function cipherSolution($keyword, $code){ 
    $this -> keyCipher($keyword); 

    return $cipher; 
} 
} 
?> 

我認爲它與 - >運算符有關,但我不知道它是如何工作的。

西九龍填海區

+0

你想從調用'keyCipher()'返回值?此刻,你放棄它,並試圖返回'$ cipher'的值,但是你沒有正確地做到這一點。 –

+0

另外,你打算使用'cipherSolution()'中的'$ code'參數,它目前還沒有被使用? –

+0

代碼過去很長,但我發佈了一個簡化版本,因爲我想盡可能簡化它,試圖理解爲什麼代碼無法正常工作。我試過「$ cipher - > keyCipher($ keyword)」,這也是行不通的。 這是一個discryption函數,$ code是輸入。 – user7414165

回答

1

如果你想返回從keyCipher()的值,請嘗試:

function cipherSolution($keyword) { 
    return $this->keyCipher($keyword); 
}