HOMESEO TOOL >PHP関数 備忘録:変数の中の数字が「08」「09」で始まるときにエラーになる:DW230

PHP関数 備忘録:「Invalid numeric literal in line ***」:DW230

「Invalid numeric literal in line ***」

PHP7に変更後のエラー「Invalid numeric literal in line ***」

PHP7に変更後
error: Invalid numeric literal in line ***
と表示されたときの対応

変数の中の数字が「08」「09」で始まるときにエラーになる

確認しても上下の行に数値だけ違う数式があるのになぜ?

「$col01[08]」と「$col01[09]」がいけないらしい

$col01[05] = "";
$col01[06] = "";
$col01[07] = "";
$col01[08] = "";←ここでエラーになる
$col01[09] = "";←上記を消してもここでエラーになる
$col01[10] = "";
$col01[11] = "";
$col01[12] = "";

どうやら内部処理が0で始まる数字は8進数で扱われるらしく
8進数は0~7の数字なので
8と9の数字を使った08や09はありえないことになりエラーになるらしい

単体で使っているならシート内をCtrl+Hで
「$col01[08]」を「$col01[8]」や「$col01[108]」に置換すれば終了です

「$col01[$ar8]」のように変数で取得している場合はエラーになりません

$col01[05] = "";
$col01[06] = "";
$col01[07] = "";
$col01[8] = "";
$col01[9] = "";
$col01[10] = "";
$col01[11] = "";
$col01[12] = "";

なんか見た目がイラッとしますが・・仕方ない・・
これで「Invalid numeric literal in line ***」エラーは無くなりました

以上





TOPへ    
・用途 使用例 使用関数
「平成」を新元号「令和」に変更 令和6年3月29日 14:24:25 gmt() gmdate() if() time()
ランダムパスワード生成(数字) PASS:9600 array_rand() if() for
ランダムパスワード生成(英数字混在) PASS:Ug63s4MFh array_rand() if() array() 他
フッター用タイムスタンプ 2024/03/29 14:24:25 time() gmdate()
日数のカウントダウン time() strtotime() ceil()
転送と条件付き転送   header() if() $_SERVER[]
URLエンコード/デコード   urlencode() urldecode()
トーナメント表を作る   if() echo() isset()
error: Invalid numeric literal in line ***    
PHP7に変更後に変数が最初の1文字しか取得しない    

Copyright (C) 2001-2023 Digital World Corporation. All Rights Reserved.