我已经构建了非常简单的 php 表单,它发布到 $_SESSION 中,然后从 $_SESSION 数据生成 pdf。我正在使用 fpdf 来生成 pdf。在通过 fpdf 输出任何内容之前,我想检查上传的文件 $_SESSION 是否为空(因为我想更改输出)
一切都按预期工作,但我真的很困惑为什么如果会话为空,为什么 $_SESSION 数据会被覆盖:
if(isset($_SESSION['attachments']) && !empty($_SESSION['attachments'])) {
$attachments = $_SESSION['attachments'];
}
else {
$attachments = "No attachments";
}
现在, $_SESSION['attachments'] 包含附件的序列化路径,但如果没有上传附件,则为 null。为什么这个 if 子句初始化并覆盖 SESSION 如下:
var_dump($_SESSION['attachments']);
输出:
string 'No attachments' (length=14)
剥离 fpdf 脚本来演示我在做什么:
<?php
require('fpdf.php');
if(!isset($_SESSION)){
session_start();
}
//Lot of other checking
if(isset($_SESSION['attachments']) && !empty($_SESSION['attachments'])) {
$attachments = $_SESSION['attachments'];
}
else {
$attachments = "No attachments";
}
//a lot of fpdf functions. AddMultiRow is my own function
$pdf = new PDF();
$pdf->AddPage();
$pdf->AddMultiRow(utf8_decode("Required attachments:"), $attachments, 1);
$pdf->Output(//output comes here);
?>