
Мы находимся на последних встроенных функциях/методах, которые может предложить PHP. Мы далеки от полного набора встроенных функций, которые предлагает PHP, но я думаю, что мы рассмотрели наиболее часто используемые из них. В этой статье мы рассмотрим методы __invoke, __toString, __get и __set.
В PHP есть несколько «магических методов», таких как __construct, __destruct, __call, __callStatic, __get, __set, __isset, __unset, __sleep, __wakeup, __serialize, __toString, __invoke, __setState, __clone и __debuginfo. Мы уже рассмотрели магические методы __call, __construct и __destruct.
trim(),ltrim(),rtrim()htmlspecialchars()__call()preg_match()filter_var()addslashes()str_replace()strlen()strtolower()strtoupper()ucfirst()strpos(),stripos(),strrpos(),strripos()- Функции массива, такие как:
array_chunk(),array_diff(),array_key_exists(),array_key_first(),array_key_last(),array_map(),array_merge(),array_push(),array_sum(),asort(),arsort(),count(),in_array(),ksort(),krsort(),sort(),rsort(),shuffle(),sizeof(),is_array(),explode(),implode() - Магические методы, такие как:
__invoke(),__toString(),__get(),__set()
__вызов()
Магический метод __invoke вызывается, когда скрипт вызывает объект как функцию.
<?php
class InvokeTest
{
public function __invoke( $name )
{
echo "Hey " . $name;
}
}
$invoke = new InvokeTest;
$invoke("Dino");
Интересный. Мы создаем экземпляр объекта InvokeTest, а затем вызываем его как функцию. Мы получаем ответ, и это: Hey Dino.
__нанизывать()
Если вы когда-либо хотели echo сам объект, вам просто нужно реализовать __toString метод.
<?php
class ToStringTest
{
private string $name = "Dino Cajic";
public function __toString() {
return $this->name;
}
}
$test = new ToStringTest;
echo $test;
В ответ мы получаем Dino Cajic.
__set(), __получить()
Мы могли бы также рассмотреть методы __set и __get, пока мы заканчиваем. Подобно магическому методу __call, __set и __get вызываются, когда свойство недоступно либо из-за применения к свойству модификатора private/protected, либо из-за того, что свойство не существует.
Магический метод __set принимает два аргумента, $name и $value. $name — это свойство, к которому вы пытаетесь получить доступ, а $value — это значение, которое вы пытаетесь присвоить.
Для магического метода __get мы просто передадим свойство, к которому вы пытаетесь получить доступ.
<?php
class GetAndSetTest
{
private array $data;
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __get($name) {
return $this->data[$name];
}
}
$test = new GetAndSetTest;
$test->name = "Dino Cajic";
echo $test->name;
$test->age = 55;
echo $test->age;
Несмотря на то, что у нас нет этих свойств, у нас есть __set магический метод. Он устанавливает наш массив $data сначала с $data[‘name’] = ‘Dino Cajic’, а затем с $data[‘age’] = 55. Затем мы можем вызвать эти свойства с помощью метода __get. Таким образом, ответ, который мы получаем, когда мы вызываем наши свойства: Dino Cajic и 55.

Дино Кайич в настоящее время является руководителем отдела информационных технологий в Absolute Biotech, материнской компании LSBio (LifeSpan BioSciences, Inc.), Absolute Antibody, Kerafast, Everest BioTech, Nordic MUbio и Exalpha. ». Он также является генеральным директором MyAutoSystem. У него есть B.S. в области компьютерных наук, по специальности биология и более десяти лет опыта разработки программного обеспечения. Его опыт включает в себя создание приложений для электронной коммерции на уровне предприятия, разработку программного обеспечения на основе исследований и содействие распространению знаний посредством письма.
Вы можете связаться с ним в LinkedIn, подписаться на него в Instagram или подписаться на его публикацию в Medium.