PHP-for()无循环体,在for中直接运行代码的结果为什么不一样?这两种运行方式有什么区别吗?

发布于 2017-02-04 23:34:09 字数 870 浏览 1254 评论 1

function createCode ( $a )
{
for($f = 0 ;$f < 8 ;$f ++) {
$a = md5 ( $a , true ) ;
$s = '0123456789ABCDEFGHIJKLMNOPQRSTUV' ;
$d = '' ;
$g = ord ( $a[ $f ] ) ;
$d .= $s[ ( $g ^ ord ( $a[ $f + 8 ] ) ) - $g & 0x1F ] ;
};
return $d;
}

var_dump(createCode('jakljfklasdjfkldsf'));
//输出4

function createCode ( $a )
{
for
(
$a = md5 ( $a , true ) ,
$s = '0123456789ABCDEFGHIJKLMNOPQRSTUV' ,
$d = '' ,
$f = 0 ;
$f < 8 ;
$g = ord ( $a[ $f ] ) ,
$d .= $s[ ( $g ^ ord ( $a[ $f + 8 ] ) ) - $g & 0x1F ] ,
$f ++
) ;

return $d;
}

var_dump(createCode('jakljfklasdjfkldsf'));
//输出PPMLAP01

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瑾兮 2017-06-27 09:43:20

两段代码不等价, 第一段里$d每次循环都先被设成'', 第二段又多算一次$a = md5 ($a, true),所以输出不同。实现的功能都不同,比较方式还有什么意义?

对了,最大的区别是第二种写法会被骂~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文