我创建了一个名为“Personnage”(法语字符)的类,它为游戏创建了一个角色。但是,当我创建一个类的实例,一个对象时,它不起作用。我的对象没有创建。我创建了一个名为“salut()”的方法(hi in french),它只包含一个echo。当我打电话给它时,什么也没出现。我也做了对象的var_dump和print_r但没有出现。这是代码:
Personnage.class.php:
<?php
class Personnage
{
//ATRIBUTS
private $_id;
private $_nom;
private $_degats;
//FONCTIONS
public function __construct(array $donnee)
{
$this->hydrate($donnee);
}
public function hydrate(array $donnee)
{
foreach($donnee as $key => $value)
{
$method = 'set'.ucfirst($key);
if(method_exists($this, $method))
{
$this->$method($value);
}
}
}
public function salut()
{
echo 'SALUT';
}
public function attaquer(Personnage $adversaire)
{
$adversaire->setDegats($adversaire->getDegats + 5);
$db = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
$manager = new PersonnagesManager($db);
$manager->updateDegats($adversaire);
$adversaire->mourrir();
}
public function mourrir()
{
if($this->_degats >= 100)
{
$db2 = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
$manager2 = new PersonnagesManager($db2);
$manager2->delete($this);
}
}
//SET
public function setId($id)
{
if(is_int($id))
{
$this->_id = $id;
}
}
public function setNom($nom)
{
if(is_string($nom))
{
$this->_nom = $nom;
}
}
public function setDegats($degats)
{
if(is_int($degats) && $degats >= 0 && $degats <= 100)
{
$this->_degats = $degats;
}
}
//GET
public function getId{ return $this->_id; }
public function getNom{ return $this->_nom; }
public function getDegats{ return $this->_degats; }
}
?>
test2.php:
<?php
session_start();
function chargerClasse($classe)
{
require $classe .'.class.php';
}
spl_autoload_register('chargerClasse');
$name = 'Pat'
$perso = new Personnage(array('nom' => $name));
$perso->salut();
var_dump($perso);
?>
我的文件位于同一个文件夹中。我没有找到错误,也许你会..?感谢。
答案 0 :(得分:3)
您的类方法声明中存在语法错误:
public function getId{ return $this->_id; }
public function getNom{ return $this->_nom; }
public function getDegats{ return $this->_degats; }
您缺少括号:
public function getId(){ return $this->_id; }
public function getNom(){ return $this->_nom; }
public function getDegats(){ return $this->_degats; }