Junior
რომელი ჯადოსნური მეთოდები იცით კლასებისთვის?
sobes.tech AI
პასუხი AI-სგან
PHP-да മാജിക് മെതഡുകൾ പ്രത്യേകമായ മെതഡുകളാണ്, അവ നിർദ്ദിഷ്ടമായ സംഭവങ്ങളിൽ സ്വയം വിളിക്കപ്പെടുന്നു. അവ __ (ഡബിൾ അണ്ടർസ്കോർ) കൊണ്ട് ആരംഭിക്കുന്നു.
പ്രധാന മാജിക് മെതഡുകൾ:
__construct(): ക്ലാസിന്റെ പുതിയ ഉദാഹരണം സൃഷ്ടിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു. ഒബ്ജക്റ്റ് ആരംഭിക്കാൻ ഉപയോഗിക്കുന്നു.__destruct(): ഒബ്ജക്റ്റ് നീക്കംചെയ്യുമ്പോൾ അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് അവസാനിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു. റിസോഴ്സുകൾ ഒഴിവാക്കാൻ ഉപയോഗിക്കുന്നു.__call(string $name, array $arguments): ലഭ്യമല്ലാത്ത അല്ലെങ്കിൽ നിലവിലില്ലാത്ത മെതഡ് വിളിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു.__callStatic(string $name, array $arguments): സ്റ്റാറ്റിക് മെതഡ് വിളിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു.__get(string $name): ലഭ്യമല്ലാത്ത അല്ലെങ്കിൽ നിലവിലില്ലാത്ത പ്രോപ്പർട്ടി ആക്സസ് ചെയ്യുമ്പോൾ വിളിക്കപ്പെടുന്നു.__set(string $name, mixed $value): ലഭ്യമല്ലാത്ത അല്ലെങ്കിൽ നിലവിലില്ലാത്ത പ്രോപ്പർട്ടി വില സജ്ജമാക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു.__isset(string $name):isset()അല്ലെങ്കിൽempty()വിളിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു.__unset(string $name):unset()വിളിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു.__serialize():serialize()ഉപയോഗിച്ച് ഒബ്ജക്റ്റ് സീരിയലൈസ് ചെയ്യുന്നതിന് മുമ്പ് വിളിക്കപ്പെടുന്നു. സീരിയലൈസേഷനായി പ്രോപ്പർട്ടികളുടെ അറെ നൽകുന്നു.__unserialize(array $data):unserialize()ഉപയോഗിച്ച് ഒബ്ജക്റ്റ് ഡീസീരിയലൈസ് ചെയ്യുമ്പോൾ വിളിക്കപ്പെടുന്നു. പ്രോപ്പർട്ടികൾ പുനഃസ്ഥാപിക്കാൻ ഡാറ്റാ അറെ ലഭിക്കുന്നു.__toString(): ഒബ്ജക്റ്റ് ഒരു സ്ട്രിങ്ങ് ആയി പരിഗണിക്കാൻ അനുവദിക്കുന്നു.echoപോലുള്ള ശ്രമങ്ങളിൽ വിളിക്കപ്പെടുന്നു. സ്ട്രിങ്ങ് തിരികെ നൽകണം.__invoke(...$arguments): ഒബ്ജക്റ്റ് ഫംഗ്ഷനായി പ്രോസസ്സ് ചെയ്യാൻ അനുവദിക്കുന്നു. ഫംഗ്ഷൻ പോലെ വിളിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു.__set_state(array $properties):var_export()ഉപയോഗിച്ച് ഒബ്ജക്റ്റ് പുനഃസ്ഥാപിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു. പ്രോപ്പർട്ടികളുടെ അറെ ലഭിക്കുന്നു.__debugInfo():var_dump()ഒബ്ജക്റ്റിൽ വിളിക്കുമ്പോൾ വിളിക്കപ്പെടുന്നു. ഡീബഗ്ഗിംഗിനായി വിവരങ്ങളുടെ അറെ നൽകണം.
ഉദാഹരണങ്ങൾ:
<?php
class MyClass {
private $name;
public function __construct(string $name) {
$this->name = $name;
}
public function __toString(): string {
return "ഒബ്ജക്റ്റ് നാമം: " . $this->name;
}
}
$obj = new MyClass("ടെസ്റ്റ്");
echo $obj; // __toString() വിളിക്കും
<?php
class MyClass {
private $data = [];
public function __set(string $name, mixed $value): void {
$this->data[$name] = $value;
}
public function __get(string $name): mixed {
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}
return null; // അല്ലെങ്കിൽ എക്സപ്ഷൻ നൽകുക
}
}
$obj = new MyClass();
$obj->prop1 = "വില 1"; // __set() വിളിക്കും
echo $obj->prop1; // __get() വിളിക്കും