Junior
Kas ir burvju metodes PHP?
sobes.tech AI
Atbilde no AI
Burvju metodes PHP ir īpaši metodes, kuras tiek automātiski izsauktas noteiktos apstākļos. Tām sākas ar diviem apakšsvītrām (__).
Galveno burvju metožu saraksts:
__construct(): Izsauc, izveidojot jaunu objektu.__destruct(): Izsauc, iznīcinot objektu.__call($name, $arguments): Izsauc, mēģinot izsaukt nepieejamu vai neesošu objekta metodi.__callStatic($name, $arguments): Izsauc, mēģinot izsaukt nepieejamu vai neesošu statisku metodi.__get($name): Izsauc, mēģinot iegūt nepieejamu objekta īpašību.__set($name, $value): Izsauc, mēģinot iestatīt nepieejamu īpašību.__isset($name): Izsauc, izmantojotisset()vaiempty()nepieejamai īpašībai.__unset($name): Izsauc, izmantojotunset()nepieejamai īpašībai.__sleep(): Izsauc pirms serializācijas, atgriež īpašību nosaukumu masīvu serializācijai.__wakeup(): Izsauc pēc deserializācijas.__toString(): Atļauj objektam uzvesties kā virknei, izmantojot kā virknes kontekstā.__invoke($args): Izsauc, kad skripts mēģina izsaukt objektu kā funkciju.__set_state(array $properties): Izsauc, eksportējot objektu arvar_export().__clone(): Izsauc pēc objekta klonēšanas pabeigšanas, lai konfigurētu klonu.__serialize(): Izsauc, serializējot, atgriežot datu masīvu serializācijai.__unserialize(array $data): Izsauc, pēc deserializācijas, saņemot datus no__serialize().
Piemērs, izmantojot __construct un __destruct:
<?php
class Example {
public function __construct() {
echo "Objekts izveidots\n";
}
public function __destruct() {
echo "Objekts iznīcināts\n";
}
}
$obj = new Example();
unset($obj); // Piespiedu iznīcināšana
?>
Piemērs, izmantojot __get un __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; // Vai izmet izņēmumu
}
}
$store = new DataStore();
$store->name = "Alice"; // Izsauc __set
echo $store->name; // Izsauc __get
?>