<?php
class SomeHelperClass
{
// Version 1
public static function getProperty1(object $object, string $property)
{
return Closure::bind(
function () use ($property) {
return $this->$property;
},
$object,
$object
)();
}
// Version 2
public static function getProperty2(object $object, string $property)
{
return (
function () use ($property) {
return $this->$property;
}
)->bindTo(
$object,
$object
)->__invoke();
}
}
class Test
{
private $property = 'test1';
private $property2 = 'test2';
}
$object = new Test;
echo SomeHelperClass::getProperty1($object, 'property');
echo SomeHelperClass::getProperty2($object, 'property2');
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- test1test2
preferences:
84.54 ms | 406 KiB | 5 Q