PHP 4.0 Bug #6242: exit signal segmentation fault (11) with class object
| From: | nicolas dot prochazka at sansistor dot com | Date: | Fri, 18 Aug 2000 17:53:14 +0000 |
| Subject: | PHP 4.0 Bug #6242: exit signal segmentation fault (11) with class object | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-29491@lists.php.net to get a copy of this message | ||
From: nicolas.prochazka@sansistor.com
Operating system: Solaris 7
PHP version: 4.0.1pl2
PHP Bug Type: Scripting Engine problem
Bug description: exit signal segmentation fault (11) with class object
It' call to insert_Naire_fils that's running the :
exit signal segmentation fault (11)
more exactly it 's : $tab_object[$i]->node()
php seems to not support member function call from array object .....
-----
<?
class Treebinaire {
var $node;
var $fg;
var $fd;
function Treebinaire($node = '',$fg = NULL,$fd = NULL) {
$this->node=$node;
$this->fg=$fg;
$this->fd=$fd;
}
function node() {
return $this->node();
}
function insert() {}
function display($decalage) {
print "<br>$decalage".$this->node;
$decalage=$decalage.'-';
if ($this->fg!=NULL) $this->fg->display($decalage);
if ($this->fd!=NULL) $this->fd->display($decalage);
}
}
class TreeNaire {
var $node;
var $fils;
var $frere;
function TreeNaire($node = '',$fils = NULL, $frere = NULL ) {
$this->node=$node;
$this->fils=$fils;
$this->frere=$frere;
}
function node() {
return $this->node();
}
function insertfils($fils) {
$this->fils=$fils;
}
function insertfrere($frere) {
$this->frere=$frere;
}
function display($decalage) {
// impression d'un arbre
print "<br>$decalage".$this->node;
$decalage=$decalage.'-';
if ($this->fils!=NULL) {
$this->fils->display($decalage);
}
$decalage=substr($decalage,1);
if ($this->frere!=NULL) $this->frere->display($decalage);
}
}
// Fonction travaillant sur les arbres mais pas des mthodes ...
Function insert_Naire_fils($string_node,$fils,$tab_object) {
for ($i=0;$i<sizeof($tab_object);$i++) {
print "<br>HERE:".$tab_object[$i]->node();
//if ($tab_object[$i]->node()=="$string_node") {}
//$tab_object[$i]->insertfils($fils);
}
}
$feuille1 = new Treebinaire("feuille1");
$feuille2 = new Treebinaire("feuille2");
$fils1 = new Treebinaire("fils1",$feuille1,$feuille2);
$fils2 = new Treebinaire("fils2",$feuille1);
$pere = new Treebinaire("pere",$fils1,$fils2);
print "<h3>ARbre binaire</h3>";
$pere->display('');
$feuillen2 = new TreeNaire("feeille2",$fils1,$fils2);
$feuillen1 = new TreeNaire("feullen1",NULL,$feuillen2);
$frere2 = new TreeNaire("frere2",$feuille2);
$frere1 = new TreeNaire("frere1",$feuille1,$frere2);
$filsn1 = new TreeNaire("filsn1",$feuillen1,$frere1);
$peren = new TreeNaire("pereN",$filsn1);
$tab_object=array
($feuille1,$feuille2,$fils1,$fils2,$pere,$feuillen2,$feuillen1,$frere2,$frere1,$filsn1,$peren);
insert_Naire_fils("pereN",$fils2,$tab_object);
print "<h3>Arbre Naire</h3>";
$peren->display('');
?>