Массив php неправильно получен в конструкторе классов

Я пытаюсь передать массив конструктору класса, и по какой-то причине конструктор получает массивы, отличные от тех, которые я отправляю.
Код строит 2 массива и отправляет их:

$exportArray=array();
foreach($new->arr as $ar){
$values[]=intval($ar[4]);
$dates[]=strtotime($ar[1]);
$exportArray[]=array($ar[5],$ar[0],$ar[2],$ar[3],$ar[1]);
}
$new->query="SELECT distinct c_name,date,m_name,t_amount,t_id FROM transport,customer,driver,material WHERE". " customer.c_id=transport.c_id AND material.m_id=transport.m_id AND transport.d_id=$name ORDER BY date DESC LIMIT $lim";
//var_dump($new->query);
$new->again();
foreach($new->arr as $ar){
echo "<tr><td><a href='customers.php?c_name=$ar[0]'>$ar[0]</a></td><td>$ar[1]</td><td><a href='materials.php?m_name=$ar[2]'>$ar[2]</a></td><td>$ar[3]</tr>";
//var_dump($ar);
}
?>
</table>
<?php
if(isset($lim)&&$lim!="1"){
$qr=new query("SELECT last FROM graph");
$last=$qr->arr[0][0];
var_dump($values);
var_dump($dates);
$graph1=new graphs($dates,$values,"Deliveries With Respect To Dates","driver");
$graph1->getGraph("date");
$qr->again();

Конструктор класса получает их и выполняет проверки:

class graphs{

public $xtype=NULL;
public $ytype=NULL;
public $graph=NULL;
private $xs=array();
private $ys=array();
public $type=NULL;

public function __construct($arr1,$arr2,$title,$type){
if(!is_array($arr1)||!is_array($arr2)){
die("in order to see the graph, you need more than one result!");
}
elseif(count($arr1)<=1||count($arr2)<=1){
var_dump($arr1);
var_dump($arr2);
die("in order to see the RELEVANT graph, you need more than one result!");
}
$this->title=$title;
$this->xs=$arr1;
$this->ys=$arr2;
$this->graph= new Graph(600,400,'auto');
$this->graph->SetScale("textlin");
$this->graph->SetShadow();
$this->graph->title->Set($this->title);
$this->graph->title->SetFont(FF_ARIAL,FS_NORMAL,9);
$this->graph->xaxis->setTickLabels($arr1);
if($type=="driver"){
$this->type=1;
}
elseif($type=="customer"){
$this->type=2;
}
elseif($type=="material"){
$this->type=3;
}
}//construct

Получаем это в браузере (первые 2 дампа — это то, что я отправляю, вторые — это те, которые выводит класс):

введите описание изображения здесь

2

Решение

Я думаю, что некоторые из ваших инициализаций внутри вашего конструктора, особенно для вашего $arr1 & $arr2 аргумент

   $this->.. = $arr1;
$this->.. = $arr2 ;

Должен быть объявлен до вашего if(!is_array($arr1)||!is_array($arr2)){..

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]