2017-01-16 7 views
2

Ich schreibe gerade eine Schlüsselchiffre-Funktion, um später durch Komponententests testen zu können. Ich bin sehr neu in PHP und ich habe Schwierigkeiten, eine Funktion aus derselben Klasse aufzurufen. Hier ist der Code:Aufruf einer Funktion (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; 
} 
} 
?> 

Ich denke, es ist etwas mit dem zu tun hat -> Operator, aber ich bin nicht sicher, wie es funktioniert.

WKR

+0

Haben Sie den Wert aus dem Aufruf von 'keyCipher()' zurückkehren wollen? Im Moment verwerfen Sie es und versuchen, den Wert von $ cipher zurückzugeben, aber Sie tun das auch nicht richtig. –

+0

Wollen Sie auch den Parameter '$ code' in' cipherSolution() 'verwenden, der momentan nicht verwendet wird? –

+0

Früher war der Code länger, aber ich habe eine reduzierte Version veröffentlicht, weil ich sie so einfach wie möglich vereinfachen wollte, um zu verstehen, warum der Code nicht funktioniert. Ich habe auch "$ cipher -> keyCipher ($ keyword)" ausprobiert, was auch nicht funktioniert hat. Es ist eine Diskryptionsfunktion, bei der $ code die Eingabe ist. – user7414165

Antwort

1

Wenn Sie den Wert von keyCipher() zurückkehren möchten, versuchen:

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