Calvin
Legacy Member
Misschien een domme vraag maar het is een deel van een php probleem:
1) Hoe kan ik een private method aanroepen in de klasse zelf:
self::function() of this->function(); ??
2) Kan een non-static method een private static variabele van die class wijzigen?
Het doel:
De class moet onthouden hoeveel instances ervan gemaakt zijn, daarom de static variabele
De static variable wordt gebruikt in de __construct method om een unieke key toe te wijzen aan elke instance van die class.
hier is de class: (het relevante gedeelte toch)
<?php
class card
{
private $Card_owner_id;
private static $Card_total;
private $Card_game_id;
public function __construct()
{
self::createNewCard();
$this->Card_owner_id = 0;
}
private function createNewCard()
{
self:
Card_total++; //increment the static variable
$this->Card_game_id = self:
Card_total; //assign unique id
}
public function giveCardGameId()
{
return $this->Card_game_id;
}
public function giveCardTotal()
{
return self:
Card_total;
}
}
?>
Dit probeerde ik uit te voeren; het gaf geen error maar gewoon een leeg scherm:
<?php
for ($i = 0; $i < 10; $i++) {
$card[$i] = new card();
}
for ($i = 0; $i < 10; $i++) {
print "CardGameId: $card[$i]->giveCardGameId() : $card[$i]->giveCardTotal() <br />";
}
?>
Iemand een idee?
Alzeker bedankt.
1) Hoe kan ik een private method aanroepen in de klasse zelf:
self::function() of this->function(); ??
2) Kan een non-static method een private static variabele van die class wijzigen?
Het doel:
De class moet onthouden hoeveel instances ervan gemaakt zijn, daarom de static variabele
De static variable wordt gebruikt in de __construct method om een unieke key toe te wijzen aan elke instance van die class.
hier is de class: (het relevante gedeelte toch)
<?php
class card
{
private $Card_owner_id;
private static $Card_total;
private $Card_game_id;
public function __construct()
{
self::createNewCard();
$this->Card_owner_id = 0;
}
private function createNewCard()
{
self:
Card_total++; //increment the static variable$this->Card_game_id = self:
Card_total; //assign unique id}
public function giveCardGameId()
{
return $this->Card_game_id;
}
public function giveCardTotal()
{
return self:
Card_total;}
}
?>
Dit probeerde ik uit te voeren; het gaf geen error maar gewoon een leeg scherm:
<?php
for ($i = 0; $i < 10; $i++) {
$card[$i] = new card();
}
for ($i = 0; $i < 10; $i++) {
print "CardGameId: $card[$i]->giveCardGameId() : $card[$i]->giveCardTotal() <br />";
}
?>
Iemand een idee?
Alzeker bedankt.
