Junior
რა არის ჯადოსნური მეთოდები PHP-ში?
sobes.tech AI
პასუხი AI-სგან
მაგიური მეთოდები PHP-ში არის სპეციალური მეთოდები, რომლებიც ავტომატურად იძახიან გარკვეულ სიტუაციებში. მათი სახელები იწყება ორი ხაზის ქვეშ (__).
ძირითადი მაგიური მეთოდების სია:
__construct(): იძახება ახალი ობიექტის შექმნისას.__destruct(): იძახება ობიექტის განადგურებისას.__call($name, $arguments): იძახება, როდესაც ცდილობთ დაუკავშირდეთ მიუწვდომელ ან არარსებულ მეთოდს.__callStatic($name, $arguments): იძახება, როდესაც ცდილობთ დაუკავშირდეთ მიუწვდომელ ან არარსებულ სტატიკურ მეთოდს.__get($name): იძახება, როდესაც ცდილობთ მიუწვდომელი თვისების მნიშვნელობის მიღებას.__set($name, $value): იძახება, როდესაც ცდილობთ მიუწვდომელი თვისების მნიშვნელობის დაყენებას.__isset($name): იძახება, როდესაც იყენებთisset()ანempty()მიუწვდომელ თვისებაზე.__unset($name): იძახება, როდესაც იყენებთunset()მიუწვდომელ თვისებაზე.__sleep(): იძახება სერილიზაციის წინ, აბრუნებს თვისებების სახელების მასივს სერილიზაციისთვის.__wakeup(): იძახება დესერილიზაციის შემდეგ.__toString(): საშუალებას აძლევს ობიექტს მოიქცეს როგორც სტრიქონი სტრიქონულ კონტექსტში გამოყენებისას.__invoke($args): იძახება, როდესაც სკრიპტი ცდილობს ობიექტის გამოძახებას როგორც ფუნქცია.__set_state(array $properties): იძახება ობიექტის ექსპორტისასvar_export()-ით.__clone(): იძახება კლონირების დასრულების შემდეგ, კლონის კონფიგურაციისთვის.__serialize(): იძახება სერილიზაციის დროს, აბრუნებს მონაცემთა მასივს სერილიზაციისთვის.__unserialize(array $data): იძახება დესერილიზაციის დროს, იღებს მონაცემებს__serialize()-დან.
მაგალითი __construct და __destruct-ის გამოყენების:
<?php
class Example {
public function __construct() {
echo "ობიექტი შექმნილია\n";
}
public function __destruct() {
echo "ობიექტი განადგურდა\n";
}
}
$obj = new Example();
unset($obj); // იძულებით განადგურება
?>
მაგალითი __get და __set-ის გამოყენების:
<?php
class DataStore {
private $data = [];
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __get($name) {
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}
return null; // ან გამონაკლისის გამოტანა
}
}
$store = new DataStore();
$store->name = "Alice"; // __set-ის გამოძახება
echo $store->name; // __get-ის გამოძახება
?>