0

PHPでsscanf()関数がどのように機能するかを理解しようとしています

以下の両方のコードスニペットでは、フォーマットされた出力は得られません。sscanf()関数で何が間違っていますか?

ありがとう

スニピット#1

<?php
$input = '1235551234';
sscanf($input, "%3s%3s$4s", $a, $b, $c);
echo '(' . $a . ') ' . $b . '-' . $c;
?>

戻り値: () -

スミピット#2

<?php
$input = 1235551234;
sscanf($input, "%3s%3s$4s", $a, $b, $c);
echo '(' . $a . ') ' . $b . '-' . $c;
?>

戻り値: () -

4

2 に答える 2

2
sscanf($input, "%3s%3s$4s", $a, $b, $c);
                      ^---- typo? should be %?

それで、おそらくあなたの番号に存在しないリテラル文字シーケンス、を$探しています。$4s

于 2013-01-21T17:47:36.983 に答える
0

これを試してみてください。フォーマットに間違いがありました。

    $input = '1235551234';
    sscanf($input, "%3s%3s%4s", $a, $b, $c); // good
 // sscanf($input, "%3s%3s$4s", $a, $b, $c); // bad

    echo '(' . $a . ') ' . $b . '-' . $c;
于 2013-01-21T17:51:00.030 に答える