1

以下$code = (string)$code;では成功しませんでしたが、PHPで数値を文字列に変換するにはどうすればよいですか?

$code = 087326487326;
$strlen = strlen($code);
print $strlen."<br/>";
for ($i = $strlen; $i >= 0; $i--) {
  print substr($code, 0, $i)."<br/>";
}

出力:

1
0

$code = '087326487326';
$strlen = strlen($code);
print $strlen."<br/>";
for ($i = $strlen; $i >= 0; $i--) {
  print substr($code, 0, $i)."<br/>";
}

出力:

12
087326487326
08732648732
0873264873
087326487
08732648
0873264
087326
08732
0873
087
08
0
4

4 に答える 4

7

接頭辞が。であるため失敗し0、PHPはそれを8進数として解釈しようとします。8これは、文字列を解析するときに有効な8進数ではないため、を取得します0

(string)解決策はキャストまたはを使用するstrval()ことですが、の定義から先行ゼロを削除する必要があります$code

$code = 87326487326;
var_dump( $code, (string) $code, strval( $code));

これは(x64マシンで)出力します:

int(87326487326) string(11) "87326487326" string(11) "87326487326" 
于 2012-07-15T15:02:16.153 に答える
1

あなたが持っているなら、私はこのタイプのジャグリング方法が好きです。

$code = 087326487326;

文字列にキャストするために必要なのは次のとおりです。

$code = "$code";

編集

申し訳ありませんが、少し気が散っていました、私はそれを間違ってテストしました。上で述べたことは真実であり、先行ゼロは災害です。それを削除して、後で番号を埋めない方法はありますか?

于 2012-07-15T15:05:45.820 に答える
1

次の関数を使用して、文字列に変換できます。

strval($code);
于 2021-08-09T10:10:41.267 に答える
0

このような型キャストを使用できますか

 $code = (string)58963245874;

チェックするには、以下のようにタイプを印刷します

 echo gettype($code);
于 2017-03-31T13:34:09.867 に答える