Мы находимся на последних встроенных функциях/методах, которые может предложить 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.