如何为代码的每个部分做一些不同的事情?

时间:2014-08-03 01:16:07

标签: php

我的代码类似于MD5哈希,我希望将它们用作一系列指令的代码:

<?php

$code = "jeu7395j6jf102m9ns7ij787ggh545h1";

// for every character from the first to
// the last, do something different depending
// on what the character is. if 5 do this,
// if p do that, etc.

有没有一种简单的方法可以在不使用库的情况下在PHP中执行此操作?

我对此感到陌生,提前谢谢。

4 个答案:

答案 0 :(得分:2)

这个问题的答案遍布互联网,但如果您还不太了解编程的语言/术语和概念,我想这很难找到。尽量不要被挫折者沮丧。 :)

您可以使用for循环和开关执行此操作:

<?php

$code = "jeu7395j6jf102m9ns7ij787ggh545h1";
$code_length = strlen($code);

for ($i = 1; $i <= $code_length); $i++) {
    switch ($code[$i-1]) {
        case 'a':
            // do this
            break;
        case 'b':
            // do that
            break;
        // case 'c' and so on for every matched character
    }
}

我们将strlen()分配给$ code_length以进行性能优化,这样我们就不会在for循环的每次迭代中执行strlen()。

在您的情况下,使用if语句可能比switch更少,但在这种情况下,切换是一种更通用的控制结构,并且它们也更明确。

另请参阅for loopsswitches

答案 1 :(得分:1)

function pj(){
 //do a
}

function p7(){
 //do b
}

function pe(){
 //do c
}

...
...
function p1(){
  //do Nn
}

foreach(explode('',$code) as $fname){
   $function ='p' . $fname;
   $function();
}

答案 2 :(得分:0)

只需一个简单的for循环就可以做到这一点:

$str = "String to loop through";
$strlen = strlen( $str );

for ($i = 0; $i <= $strlen; $i++) {
    $char = substr($str, $i, 1);
    if ($char == 't')
      echo 'Do t stuff!';
}

您可能希望为每个角色创建一个规则,一个switch语句是有意义的,但我已经使用if t字符作为示例。

答案 3 :(得分:0)

这是另一种方法:

  $code = "jeu7395j6jf102m9ns7ij787ggh545h1";


  for ($i = 0, $j = strlen($code); $i < $j; $i++) {
       switch ($code[$i]){
            case "a":
            //do something when it's 'a'
            break;

            case "b":
            //do something when it's 'b'
            break;  

            case "1":
            //do something when it's '1'
            break;  

       }
  }