2017-01-16 94 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); 
}