Notice: Undefined property

Le
Une Bévue
j'ai une petite classe :
class XSLTSaxonProcessor {
public static $JAVA='/usr/bin/java';
public static $JAR='/Users/yt/Sites/AB2Html/Builder/saxon9he.jar';
public static $xsl;
public static $xml;
public static $params;
public static $out=null;
public function importStylesheet($xsl){
$this->xsl=$xsl;
}
public function importXmlSource($xml){
$this->xml=$xml;
}
public function setParameters($params){
$this->params=$params;
}
public function setOutputFile($out){
$this->out=$out;
}
public function cmd(){
$cmd=self::$JAVA . " -jar " . self::$JAR . " -xsl:$this->xsl";
if(!is_null($this->xml)){
$cmd.=" -s:$this->xml";
}
if(!is_null($this->out)){ // <<< ligne 27
$cmd.=" -o:$this->out";
}
if(!is_null($this->params)){
foreach($this->params as $key => $val){
$cmd.=" $key=$val";
}
}
return $cmd;
}
public function exec(){
$cmd=$this->cmd();
return `$cmd`;
}
}

qui me donne une erreur avec PHP Version 5.3.6-13ubuntu3.6 :
Notice: Undefined property: XSLTSaxonProcessor::$out in
/home/yt/Sites/AB2Html/Builder/xsltsaxonproc.php on line 27
même si je mets :
public static $out=null;
au lieu de :
public static $out;

ce que je souhaite c'est attribuer une valeur (par setOutputFile($out))
-- ou non -- à cette variable $out qui n'est utilisée que si différente
de null, justement à la ligne 27 :

if(!is_null($this->out)){ // <<< ligne 27
$cmd.=" -o:$this->out";
}

comme vous le voyez, je suis un peu "novice" en php

notez que je n'ai pas cette erreur avec PHP Version 5.3.8 sur Mac OS X Lion.
mais bon les php.ini sont différents.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Une Bévue
Le #24310981
Le 10/03/2012 11:33, Une Bévue a écrit :
après google j'ai remplacé la ligne :

if(!is_null($this->out)){ // <<< ligne 27



par :

if(isset($this->out) && !is_null($this->out)){

et là ça roule.

j'ai bon ?

et je peux laisser :
public static $out;
à la place de :
public static $out=null;
Publicité
Poster une réponse
Anonyme