我可以在函数外部看到数组,但在函数内部看不到,如何在函数内部传递变量?
I can see the array outside function, but no inside the function, how pass variable inside function?
对不起英语,不是我的母语。
我正在尝试将一个数组传递给一个函数。该数组包含确定三个月的三个月。这段代码是关于FPDF的,我做的是PDF报告。
这是代码:
<?php
include('../../../libreria/engine.php');
require_once('../fpdf.php');
$mes = $_GET["txtMes"];
$per = $_GET["txtPer"];
$_SESSION["tmpMes"] = $_SESSION["sqlDataPDF"]["titulo"];
$sql = $_SESSION["sqlDataPDF"]["textoSQL"];
$mes = $_SESSION["sqlDataPDF"]["meses"];
echo $mes[0];
$rs = mysql_query($sql);
class Anexo03 extends FPDF
{
var $ProcessingTable; //Es la propiedad que indica si se esta procesando la tabla, para repetir nuevamente el encabezado.
var $anchos; // Son los anchos de las diferentes columnas
var $left; //Margen izquierdo inicial
var $clasificador;
function Header()
{ //0 1 2 3 4
$this->anchos = array(100, 20, 30);
$this->left = 15;
$this->ProcessingTable = true;
//Print the table header if necessary
}
function TableHeader($clasificador='x', $y=38, $c=false)
{
if($c)
{
$clasificador = $this->clasificador;
}
$this->clasificador = $clasificador;
$alto = 6; //Es el alto de la linea
$this->SetFillColor(209,211,223);
$this->SetFont('Arial','',10);
$this->SetXY($this->left,$y);
$ancho = $this->anchos[0] + $this->anchos[1] + $this->anchos[2] + $this->anchos[3];
//$this->Cell($ancho,$alto,"Clasificador: $clasificador", 'LRT',0,'L',1);
//$this->SetXY($this->left,$y+4);
$this->Cell($this->anchos[0],$alto,"Clasificador", 'LBT',0,'C',1);
$this->Cell($this->anchos[1],$alto,'$mes[0]', 'RBT',0,'C',1);
$this->Cell($this->anchos[1],$alto,'$mes[1]', 'RBT',0,'C',1);
$this->Cell($this->anchos[1],$alto,'$mes[2]', 'RBT',0,'C',1);
$this->Cell($this->anchos[2],$alto,"Total Trimestral", 'RBT',0,'C',1);
}
这段代码正在接收数组。我可以毫无问题地回显变量 $mes
,我可以看到数据,但当我放入 function TableHeader
时,问题就来了。我尝试 var_dump
和 echo
变量 $mes
但是 var_dump
给我 null 而 echo
什么都不做。就像我将数组放入函数中时数据丢失一样。
我尝试了不同的方法在函数内部传递变量 $mes
,也许我做得不好。
你觉得我能做什么?
在函数中使用 global $mes 然后回显变量
确保数组在 class 中可用。除非真的有必要,否则不要使用全局变量。在您的 class 中,添加所需的 属性 和方法:
class Anexo03 extends FPDF {
public $mes;
public function setMes($mes)
{
$this->mes = $mes;
}
确保数组在 class 中可用。
$mes = $_GET["txtMes"];
$pdf = new Anexo03();
$pdf->setMes($mes);
在 TableHeader 中,使用 $this->mes 而不是 $mes。
$this->Cell($this->anchos[1], $alto, $this->mes[0], 'RBT', 0, 'C', 1);
$this->Cell($this->anchos[1], $alto, $this->mes[1], 'RBT', 0, 'C', 1);
$this->Cell($this->anchos[1], $alto, $this->mes[2], 'RBT', 0, 'C', 1);
对不起英语,不是我的母语。
我正在尝试将一个数组传递给一个函数。该数组包含确定三个月的三个月。这段代码是关于FPDF的,我做的是PDF报告。
这是代码:
<?php
include('../../../libreria/engine.php');
require_once('../fpdf.php');
$mes = $_GET["txtMes"];
$per = $_GET["txtPer"];
$_SESSION["tmpMes"] = $_SESSION["sqlDataPDF"]["titulo"];
$sql = $_SESSION["sqlDataPDF"]["textoSQL"];
$mes = $_SESSION["sqlDataPDF"]["meses"];
echo $mes[0];
$rs = mysql_query($sql);
class Anexo03 extends FPDF
{
var $ProcessingTable; //Es la propiedad que indica si se esta procesando la tabla, para repetir nuevamente el encabezado.
var $anchos; // Son los anchos de las diferentes columnas
var $left; //Margen izquierdo inicial
var $clasificador;
function Header()
{ //0 1 2 3 4
$this->anchos = array(100, 20, 30);
$this->left = 15;
$this->ProcessingTable = true;
//Print the table header if necessary
}
function TableHeader($clasificador='x', $y=38, $c=false)
{
if($c)
{
$clasificador = $this->clasificador;
}
$this->clasificador = $clasificador;
$alto = 6; //Es el alto de la linea
$this->SetFillColor(209,211,223);
$this->SetFont('Arial','',10);
$this->SetXY($this->left,$y);
$ancho = $this->anchos[0] + $this->anchos[1] + $this->anchos[2] + $this->anchos[3];
//$this->Cell($ancho,$alto,"Clasificador: $clasificador", 'LRT',0,'L',1);
//$this->SetXY($this->left,$y+4);
$this->Cell($this->anchos[0],$alto,"Clasificador", 'LBT',0,'C',1);
$this->Cell($this->anchos[1],$alto,'$mes[0]', 'RBT',0,'C',1);
$this->Cell($this->anchos[1],$alto,'$mes[1]', 'RBT',0,'C',1);
$this->Cell($this->anchos[1],$alto,'$mes[2]', 'RBT',0,'C',1);
$this->Cell($this->anchos[2],$alto,"Total Trimestral", 'RBT',0,'C',1);
}
这段代码正在接收数组。我可以毫无问题地回显变量 $mes
,我可以看到数据,但当我放入 function TableHeader
时,问题就来了。我尝试 var_dump
和 echo
变量 $mes
但是 var_dump
给我 null 而 echo
什么都不做。就像我将数组放入函数中时数据丢失一样。
我尝试了不同的方法在函数内部传递变量 $mes
,也许我做得不好。
你觉得我能做什么?
在函数中使用 global $mes 然后回显变量
确保数组在 class 中可用。除非真的有必要,否则不要使用全局变量。在您的 class 中,添加所需的 属性 和方法:
class Anexo03 extends FPDF {
public $mes;
public function setMes($mes)
{
$this->mes = $mes;
}
确保数组在 class 中可用。
$mes = $_GET["txtMes"];
$pdf = new Anexo03();
$pdf->setMes($mes);
在 TableHeader 中,使用 $this->mes 而不是 $mes。
$this->Cell($this->anchos[1], $alto, $this->mes[0], 'RBT', 0, 'C', 1);
$this->Cell($this->anchos[1], $alto, $this->mes[1], 'RBT', 0, 'C', 1);
$this->Cell($this->anchos[1], $alto, $this->mes[2], 'RBT', 0, 'C', 1);