Syntaxe php objet?

Résolu/Fermé
Totorow - Modifié par Totorow le 11/02/2014 à 16:36
 Totorow - 11 févr. 2014 à 17:17
Bonjour,
j'ai pas l'habitude de la POO avec PHP, soit ma classe:
<?php
class Pageweb{
private $_nom;
private $_extension;
private $_titre;
private $_css;
// private $_script;//--rajouter les détails
public function __construct($nom,$extension,$titre,$css){
$this->setNom($nom);
$this->setExtension($extension);
$this->setTitre($titre);
}
//-----------MUTATEURS(set)---------------------//
public function setNom($nom){
$this->_nom=$nom;
}
public function setExtension($extension){
$this->_extension=$extension;
}
public function setTitre($titre){
$this->_titre=$titre;
}
public function setCss($css){
if($css!=""){$this->_css=$css;}
else{
$this->_css="".$this->_nom.".css";
}
}
//-------------GETTERS(accesseurs)-----------------------//
public function getNom(){return $_nom;}
public function getExtension(){return $this->_nom;}
public function getNomComplet(){return $_nom.'.'.$_extension;}
public function getTitre(){return $this->_titre;}
public function getCss(){return ($this->_css);}

public function dispCss(){echo $this->_css;}// essai avec echo() // marche pas non plus
//--------------METHODES ---------------------------//
public function ecritCss(){
echo("<link href='".$this->dispCss()."' type='text/css' rel='stylesheet'/>
<style type='text/css' rel='stylesheet' >@IMPORT URL(".$this->getCss().");</style>");

}
public function ecritTitre(){
echo "<title>".getTitre().
"</title>";
}


} //---fin classe Pageweb
?>
que j'instancie ici:
<?php
require('phpwebtools.php');

//public function __construct($nom,$extension,$titre,$css){
$maPage=new PageWeb('testclasspageweb','php','essai de classe','machin');
$maPage->ecritCss();
//$maPage->ecritTitre();
?>

Ce qui me donne ceci quand j'affiche la source dans mon localhost:

<link href='' type='text/css' rel='stylesheet'/>
<style type='text/css' rel='stylesheet' >@IMPORT URL();</style>

Quelqu'un saurait ce que j'ai loupé?

1 réponse

Bonjour

À vue de nez... Tu as loupé le setCss dans le constructeur.

Et bien sûr, remets un return à la place de echo dans ecritCss
0
je teste, je me sent balot du coup
...merci de ton coup d'oeil et coup de main :))

Je modifie et je reviens
0
Parfait,

$maPage->ecritCss();
//-- marche bien--//


$maPage->ecritTitre();
// mais pas celui là... je vais fouiller encore, s'agit il d'un oubli aussi bête?

Merci encore de ton aide.
0
Trouvé :

echo ("<title>".$this->getTitre()."</title>");
et non
echo ("<title>".getTitre()."</title>");

Bonne soirée
0