Goeie avond mensen,

Ik ben pas bezig met oop scripten.
en ik zou graag reacties willen hebben van wat ik goed doe en wat ik fout doe in mijn scripts
Het zijn werkende scriptjes.
<?PHP
class Profiel {
function getnaam($id) {
//Input Controleren.
if(!is_array($id) || count($id) {
return false;
}

//Data ophalen
$query = "select 'naam' from 'gebruikers' where 'id' = '$id'";
$result = mysql_query($query);

//Controleren als qeury werkt
if(!$result) die("Qeury Werkt niet. " . mysql_error());

//Info ophalen uit db als gevonden is
$naam = mysql_result($result, 0);

//Naam weergeven
echo 'Gebruikersnaam:' . $naam . '<br />';
}
}
?>
en
<?PHP
class Combat{
function att($att) {
$aanval = round($att/5);
echo 'U deed '.$aanval.' Damage.<br />';
}
function wapenatt($wapenatt) {
$wapenaanval = round($wapenatt/13);
echo 'U deed '.$wapenaanval.' Damage Met u wapen.<br />';
}
function skil1($skil1) {
$skilaanval1 = round($skil1*1.5);
echo 'U deed '.$skilaanval1.' Damage Met u Skil1.<br />';
}
function skil2($skil2) {
$skilaanval2 = round($skil2*2.3);
echo 'U deed '.$skilaanval2.' Damage Met u Skil2.<br />';
}
function total($att, $wapenatt, $skil1, $skil2) {
$aanval = round($att/5);
$wapenaanval = round($wapenatt/13);
$skilaanval1 = round($skil1*1.5);
$skilaanval2 = round($skil2*2.3);
$total = ($aanval+$wapenaanval+$skilaanval1+$skilaanval2);
echo 'U deed '.$total.' Damage in totaal.<br />';
}
}
?>
elke functie, prepend je met private, public, of protected. Ik zie meerdere dingen die je kan oplossen met het object, dus $this. Verder is het niet zo net om een echo in een class te doen, als je de html en php gescheiden houd.
bedankt voor de informatie wesley.
maar wat is dan de beste manier om de informatie te weergeven?
De functie return je, en echo je wanneer je hem oproept ;-)

Dus je geeft bij wijze van alleen een cijfer terug (attack -> damage), en het verhaal eromheen doe je dus niet in je class terug laten komen.

als ik het goed begrijp dus zo:
return 1243;

en in de oproep gedeelte dit:
$combat = new Combat();
U deed <?= $combat->att($att); ?> Damage
Ja, alleen dan geen shorttags gebruiken maar gewoon normale tags!


<?php echo $combat -> att($att)?>


En volledige namen gebruiken is ook handig ;-) $combat -> attack(); bijvoorbeeld
Is dit niet wat? Wel een beetje aanpassen naar jouw wens, en de database klassen maken, goede oefening misschien?

Verder moet je de naamgeving aanpassen en wat overzichtelijker programmeren. PHPDoc misschien een goed idee?

Verder kan je dit natuurlijk helemaal aanpassen, met foutenafhandeling ( exceptions ) en dergelijke. Succes!
<?php
/**
* Profile class
*/
class Profile
{
/**
* @var String
*/
private $name;

/**
* Constructor.
*
* @param String $unique_id
*/
public function __construct( $unique_id )
{
// Control input
if( isValid( $unique_id ) )
{
// Make new database
$database = new MySQL( );
// Connect
$database->connect( 'localhost', 'username', 'password', 'database' );
// Make query
$query =
"
SELECT
name
FROM
users
WHERE
id = '" .$database->addslashes( $unique_id ). "'
";
// Run the query
$database->query( $query );

}
}

/**
* Controls the input.
*
* @param String $unique_id
* @return Bool
*/
protected function isValid( $unique_id )
{
return ( ctype_digit( $unique_id ) );
}


}
?>
Welke voor en nadelen zijn voor het gebruiken van short tags?
want hoor het vaker gebruik geen short tags
Short tags kunnen zijn uitgezet door je webhost. Dan zie je al je php code gewoon in beeld.
o oke dankje wel dat wist ik niet:)
maar tot nu toe werkt alles wel gewoon dus en ik maak geen projecten voor andere mensen aleen voor eigen doeleine
Het maakt niet uit voor wie het is.. Als je het nu doet doe je het de volgende keer op een server waar hij uit staat ook:) Je moet proberen jezelf niks verkeerd aan te leren. Want aanleren is makkelijker dan afleren..

Reageren