PHP’s magic methods: Invoke, toString, get, set – Class wizardry in a nutshell.
We’re on the last of the built in functions/methods that PHP has to offer. We’re nowhere close to the full extent of the built in functions that PHP offers, but I think we’ve covered the most frequently used ones. In this article, we’ll look at __invoke
, __toString
, __get
and __set
methods.
PHP has a few “magic methods” like __construct
, __destruct
, __call
, __callStatic
, __get
, __set
, __isset
, __unset
, __sleep
, __wakeup
, __serialize
, __toString
, __invoke
, __setState
, __clone
, and __debuginfo
. We’ve already covered the __call
, __construct
and __destruct
magic methods.
https://blog.devgenius.io/php-p101-trim-htmlspecialchars-and-call-built-in-functions-7b4f25728db9
trim(),
ltrim()
,rtrim()
htmlspecialchars()
__call()
preg_match()
filter_var()
addslashes()
str_replace()
strlen()
strtolower()
strtoupper()
ucfirst()
strpos()
,stripos()
,strrpos()
,strripos()
- Array Functions like:
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()
- Magic Methods like:
__invoke()
,__toString()
,__get()
,__set()
__invoke()
The __invoke
magic method is called when a the script calls the object like a function.
<?php
class InvokeTest
{
public function __invoke( $name )
{
echo "Hey " . $name;
}
}
$invoke = new InvokeTest;
$invoke("Dino");
Interesting. We instantiate the InvokeTest object and then call the object like a function. We do get a response and it is: Hey Dino
.
__toString()
If you ever wanted to echo
the object itself, you just need to have the __toString
method implemented.
<?php
class ToStringTest
{
private string $name = "Dino Cajic";
public function __toString() {
return $this->name;
}
}
$test = new ToStringTest;
echo $test;
The response we get is Dino Cajic
.
__set(), __get()
We might as well cover the __set
and __get
methods while we’re wrapping up. Similar to the __call
magic method, __set
and __get
are called when the property is inaccessible, either because of the private/protected modifier being applied to the property or because the property does not exist.
The __set
magic method accepts two arguments, $name
and $value
. The $name
is the property that you’re trying to access and the $value
is the value that you’re trying to assign.
For the __get
magic method, we’ll just pass the property that you’re trying to access.
<?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;
Even though we don’t have those properties, we have a __set
magic method. It sets our $data
array with $data[‘name’] = ‘Dino Cajic’
first and then $data[‘age’] = 55
next. We can then call those properties with the __get
method. So the response that we get is once we call our properties is: Dino Cajic
and 55
.
https://github.com/dinocajic/php-youtube-tutorials?source=post_page—–eda38d07bc0a——————————-
NAVIGATING ARRAYS IS AN ART, AND PHP’S FUNCTIONS ARE YOUR PAINTBRUSHES
Array functions in PHP are like a versatile toolkit, offering an array of tools to slice, dice, rearrange, and transform data arrays effortlessly, allowing developers to compose intricate data symphonies with precision and elegance.
Class wizardry in a nutshell.
PHP – P106: built in functions: _invoke, _tostring, _get, and _set
PHP’s magic methods, including __invoke for object invocation, __toString for string conversion, and __get and __set for dynamic property handling, elevate class flexibility and clarity.
SCOPE SURPRISES IN PHP: THE JOY OF DEBUGGING
Scope defines variable visibility in a program. Variables in functions are isolated; others can’t access them.