1

両方のページを持っていますが$_SESSION["1"]、2 番目のページでは が受信されません。

更新:セッションで数値を入力すると、機能しないことが判明しました。通常の文字列を入力して動作しました..これが起こっているのを見たことがありません

1位

<?php
session_start();
$_SESSION["1"] = "LOGGED";
?>

2位

<?php
session_start();

echo $_SESSION["1"];
?>

なぜこれが機能しないのですか?

4

3 に答える 3

3

単一の数字を含むセッション変数は機能しませんが、1a機能し、a1単一の「文字」aでも機能します。

1位

<?php
session_start();
$_SESSION["a1"] = "LOGGED";
?>

2位

<?php
session_start();
echo $_SESSION["a1"];
?>

セッション変数に関する PHP.net マニュアルの例

<?php
$_SESSION[1][1] = 'cake'; // fails

$_SESSION['v1'][2] = 'cake'; // works
?>

ソース: http://php.net/manual/en/language.types.array.php


編集:

  • bob-the-destroyerのコメントによると:

php.net/manual/en/language.types.array.phpから配列キーに関して追加するには、「有効な整数を含む文字列は整数型にキャストされます」。$_SESSION のマニュアルには、「連想配列」と書かれています。文字通り、連想配列が期待されます...?セッション データへのアクセスと保存に関するこの重要な情報が手動のコメントに埋もれていると、何の役にも立ちません。

于 2013-09-07T02:05:44.617 に答える
0

$_SESSION の目的を定義する名前に $_SESSION を割り当てることができます。$_SESSION['logged'] = ログに記録されました。$_SESSIONS を文字で開始し、よりわかりやすいものにすることを忘れないでください。これにより、コードが読みやすく理解しやすくなります。

于 2013-09-07T02:56:52.227 に答える
0

この動作の理由は、C 変数宣言です。変数名は数字で始めることはできません。

于 2013-09-07T03:15:42.523 に答える