Օրինակ static-ի մասին OOP-ում PHP-ում
Ենթադրենք ունենք User դասը՝
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Եկեք կատարենք, որ այս դասը հաշվի իր օբյեկտների
քանակը: Դրա համար ստեղծենք ստատիկ հատկություն count:
Սկզբում գրենք դրա մեջ 0 արժեքը, իսկ յուրաքանչյուր
նոր օբյեկտի ստեղծման դեպքում կավելացնենք
այդ արժեքը 1-ով:
Օբյեկտի կոնստրուկտորում կավելացնենք մեր հաշվիչի արժեքը.
<?php
class User
{
public static $count = 0; // օբյեկտների հաշվիչ
public $name;
public function __construct($name)
{
$this->name = $name;
// Օբյեկտի ստեղծման դեպքում ավելացնում ենք հաշվիչը.
self::$count++;
}
}
?>
Ստուգենք, որ ամեն ինչ աշխատում է.
<?php
$user1 = new User('user1');
echo User::$count; // կտպի 1
$user2 = new User('user2');
echo User::$count; // կտպի 2
?>
Դարձրեք մեր հաշվիչը պրիվատ: Թող նրա արժեքը հնարավոր լինի ստանալ հատուկ մեթոդի միջոցով: