header("content-type:text/html;charset=utf-8");
define('SESSION_PRE', 'XX_');
define('BR', '
');
function start ($savePath , $sessionName) {
global $sessionPath;
$sessionPath = $savePath 。 DIRECTORY_SEPARATOR;
エコー __方法__ 。 BR;
trueを返します。
}
function close () {
echo __METHOD__ 。 BR;
trueを返します。
}
function read ($sessionId) {
global $sessionPath, $sessionFile;
$sessionFile = $sessionPath 。 DIRECTORY_SEPARATOR 。 ESSION_PRE 。 $セッションID;
エコー __方法__ 。 BR;
return @file_get_contents($sessionFile);
}
function write ($sessionId , $data) {
global $sessionFile;
$sessionFile = $sessionPath 。 DIRECTORY_SEPARATOR 。 ESSION_PRE 。 $セッションID;
エコー __方法__ 。 BR;
return @file_put_contents($sessionFile,$data);
}
function destroy ($sessionId) {
global $sessionFile;
@unlink($sessionFile);
エコー __方法__ 。 BR;
trueを返します。
}
function gc ($maxLifeTime) {
echo __METHOD__ 。 BR;
グローバル $sessionPath;
foreach(glob($sessionPath."/*") as $file){
if (filemtime($file)+$maxLifeTime @unlink($file);
}
}
trueを返します。
}
session_set_save_handler("開始", "閉じる", "読み取り", "書き込み", "破棄", "gc");
session_start(); //101行
$_SESSION['name'] = 'リエライ'; //102行
print_r($_SESSION); //103行
?>
説明:
我的理解session_start() 開始後、逐次実行される関数は start、read、write、close です。
官方提供: PHP 会議は実行完了または session_write_close() 関数を使用しますその後、write 関数を使用します。
那么、最初にこの脚本を 103 行まで実行したとき、何会がリレイを出力するために、今回 $_SESSION 内のデータは
セッション文書から読み取られたものですか? 結果として、脚本はまだ終了していません,怎么会はwrite呢を実行しますか?そうでない場合、
今回の$_SESSIONは普通の数組に相当しますか?103行は出力された普通の数組ではありませんか?
依次输出
start
read
Array ( [name] => Lierei )
write
閉じる
怎么不对呢?
print_r($_SESSION) ; 後就ですか?>
これ不就表示程序结束了吗?
$_SESSION は超全局数组、指示不要出现在程序の任意の場所
依次出
start
read
Array ( [name] => Lierei )
書く
閉じる
怎么不对呢?
print_r($_SESSION); 後就ですか?>
これはプログラムが完了したことを示しているのではありませんか?
$_SESSION は超全局数であり、指示不要でプログラムのどこにでも表示できます
1. session_start(); が実行されると $_SESSON が生成されます
2. print_r($_SESSION) の後にいくつかの echo 'xxxx'; を追加すると、それが表示されます
3. $_SESSION['name'] = 'Lierei'; なぜ $_SESSION には値がないのでしょうか?
1. session_start(); が実行されると $_SESSON が生成されます
2. print_r($_SESSION) の後にいくつかの echo 'xxxx'; を追加すると、それが表示されます
3. $_SESSION['name ' ] = 'Lierei'; $_SESSION に値がないのはなぜですか?
1、 session_start(); が実行されると $_SESSON が生成されます
2. print_r($_SESSION) の後にいくつかの echo 'xxxx'; を追加すると、それが表示されます
3. $_SESSION[' name'] = ' Lierei' 、なぜ $_SESSION に値がないのでしょうか?
内部の実行原理を理解したいだけですが、session_start() の後に複数の関数が実行されます。公式の声明では、スクリプトが実行されるか、session_write_close() 関数が呼び出された後に、PHP は write 関数を呼び出します。