Problem med class
Jeg er lige begyndt på læreren om classes.For lige at teste min viden ind til nu, vil jeg lave et interaktivt bjørne program.
Det går i sin enkelhed ud på, at man opretter en bjørn, derefter kan den så sove, løbe og spise. Alt efter hvor meget den løber, mister den energi og får således også energi af at sove.
Classen tager udgangspunkt i en artikel på zend, og den volder utrolig nok ingen problemer.
Her et mit script;
<?php
require("class.php");
?>
<html>
<head>
<title>Kaspers bjørn</title></head>
<body>
<table>
<?php
if ($_GET['opret']==TRUE){
?>
<form action="index.php" method="POST">
<table>
<tr>
<td>Bjørnens navn: <input name="navn" type="text"></td>
<td><input type="submit" value="Opret bjørn"></td>
</tr>
</table>
</form>
<?php
} else {
?>
<tr>
<td><a href="?opret=TRUE">Opret bjørn</a></td>
</tr>
<tr>
<td><form action="<?php echo $php_self ?>" method="post">
<table>
<tr>
<td>Løb <input type="text" name="lob"> km</td>
</tr>
<tr>
<td>Sov <input type="text" name="sov"> timer</td>
</tr>
<tr>
<td>Spis <input type="text" name="spis"> fisk</td>
</tr>
<tr>
<td><center><input type="submit" value="Udfør handling"></center></td>
</tr>
</table>
</form>
</td>
<td>
<?php
if ($_POST['navn']==TRUE){
$bjorn = new bjorn();
$bjorn->navn = $_POST['navn'];
echo "Bjørnen ".$bjorn->navn." er nu oprettet";
}
if ($_POST['spis']){
if(isset($bjorn){
$bjorn->spis($_POST['spis']);
}}
if ($_POST['lob']){
if(isset($bjorn){
$bjorn->lob($_POST['lob']);
}
if ($_POST['sov']){
if(isset($bjorn){
$bjorn->sov($_POST['sov']);
}}
?>
</td>
</tr>
</table>
<?php
}
?>
</body>
</html>
Efter hver $_post check, ser jeg om $bjorn er blevet sat, ellers for man selvfølgelig ikke lov til at ændre en class som ikke er oprettet. Man kan så oprette en, og kalde den et navn.
Men når jeg har oprettet en bjørn, og prøver at køre en af de andre funktioner, gør den ikke noget. $bjorn er åbenbart ikke blevet sat længere. Er der en måde så jeg kan checke om et objekt er blevet oprettet?
