这个php for循环是否正确?

时间:2012-07-20 14:13:21

标签: php for-loop

我正在尝试运行我在http://www.getrank.org/pagerank-script/上找到的pagerank脚本。但是当我尝试它时,我收到一条错误消息。错误信息如下。

这是一个合法的PHP代码吗?

...
function _strord($string){
for($i=0;$i $result[$i] = ord($string{$i});
return $result;
}
...

我在for语句开始的行上收到此错误。

Parse error: syntax error, unexpected T_VARIABLE, expecting ';' in /home/Desktop/test/pagerank-checker.php on line 73

感谢。

4 个答案:

答案 0 :(得分:3)

您需要比较和增量:

function _strord( $string) {
    $result = array();
    for( $i = 0, $len = strlen( $string); $i < $len; $result[$i] = ord($string[$i]), $i++);
    return $result;
}

我还对其进行了优化,以便在循环中反复忽略对strlen()的调用。

答案 1 :(得分:2)

如果您查看该页面上所写内容的源代码,您会看到:

function _strord($string){<br>
   for($i=0;$i<strlen($string);$i++)<br>
       $result[$i] = ord($string{$i});<br>
   return $result;<br>
}<br>

代码未正确转义,因此浏览器会将以<strlen开头的文本视为HTML标记的开头,并错过了一些重要的代码......

没有标记,它会显示:

function _strord($string){
   for($i=0;$i<strlen($string);$i++)
       $result[$i] = ord($string{$i});
   return $result;
}

编辑这是一个更清洁的实现:

function _strord($string) {
    return array_map('ord', str_split($string, 1));
}

答案 2 :(得分:1)

不知道你想要到达那里,但功能看起来应该是这样的:

function _strord ($string ) {

  for( $i=0; $i<strlen( $string ); $i++ ) {
    $result[$i] = ord( $string[$i] );
  }

  return $result;
}

答案 3 :(得分:0)

function _strord($string){
    $result = "";
    for($i=0;$i < strlen($string), $i++)
        $result[$i] = ord($string[$i]);
    return $result;
}