У меня есть класс PHP и вы хотите сравнить данные с помощью двух массивов в соответствии с приведенным ниже кодом.
Но здесь я хочу показать данные разностей обоих массивов.
Я пробовал код ниже, но он не работает, и я застрял в этом.
<?php
class TestClass{
public $fool = 'hehe';
public $fool2 = 'huhu';
public $fool3 = 'haha';
public $fool4 = 'haha';
public function __toString()
{
return $this->fool;
return $this->fool2;
return $this->fool3;
return $this->fool4;
}
}
$arr1 = array();
$class = new TestClass;
$class ->fool='one day';
$class ->fool2 ='test';
array_push($arr1,$class);
$arr2 = array();
$class2 = new TestClass;
$class2 ->fool ='one day';
$class2 ->fool2 ='different test';
array_push($arr2,$class2);
echo print_r($arr1).'<br/>';
echo print_r($arr2).'<br/>';
$result=array_diff($arr1,$arr2);
print_r($result);
?>
Вы слишком много смешаете, только чтобы исправить свой код, даже если я не согласен с вашей целью и как вы это делаете:
class TestClass{
public $fool = 'hehe';
public $fool2 = 'huhu';
public $fool3 = 'haha';
public $fool4 = 'haha';
public function __toString()
{
return '1: '.$this->fool.'; 2: '.$this->fool2.'; 3: '.$this->fool3.'; 4: '.$this->fool4;
}
public function asArray()
{
return array($this->fool, $this->fool2,$this->fool3,$this->fool4);
}
}
$arr1 = array();
$class = new TestClass;
$class ->fool='one day';
$class ->fool2 ='test';
$arr1[]=$class;
$arr2 = array();
$class2 = new TestClass;
$class2 ->fool ='one day';
$class2 ->fool2 ='different test';
$arr2[] = $class2;
echo $arr1[0]."\n";
echo $arr2[0];
print_r($result);
$result=array_diff($arr1[0]->asArray(),$arr2[0]->asArray());
print_r($result);
return
функции__toString()
что-то делает. Два других являются мертвым кодом (они никогда не выполняются).