0

私は次の機能を持っており、使用するとstr_replace予期しない結果が得られます

function repo($text) {
    $search = array("0","1","2","3","4","5","6","7","8","9");
    $replace = array("z30","z31","z32","z33","z34","z35","z36","z37","z38","z99");
    $text = str_replace($search,$replace,$text);
    return $text;
}

echo repo('0');

予想される答えは

z30

代わりに私は得る

zz330

私は何を間違っていますか?

4

2 に答える 2

5

あなたの機能はこのように機能します。

z30 への 0 個の変更、php は配列のループを続行し、z30 には '3' が含まれ、z33 への 3 個の変更。そのため、'z' + 'z33' + '0' = zz330 が返されます。

于 2013-03-01T19:19:27.317 に答える