Below three examples describe anonymous class with very simple and basic but quite understandable example
<?php
$ano_class_obj = new class{
public $prop1 = 'hello';
public $prop2 = 754;
const SETT = 'some config';
public function getValue()
{
return 'some returned value';
}
public function getValueWithArgu($str)
{
return 'returned value is '.$str;
}
};
echo "
";
var_dump($ano_class_obj);
echo "
";
echo $ano_class_obj->prop1;
echo "
";
echo $ano_class_obj->prop2;
echo "
";
echo $ano_class_obj::SETT;
echo "
";
echo $ano_class_obj->getValue();
echo "
";
echo $ano_class_obj->getValueWithArgu('OOP');
echo "
";
echo "
";
$ano_class_obj_with_func = ano_func();
function ano_func()
{
return new class {
public $prop1 = 'hello';
public $prop2 = 754;
const SETT = 'some config';
public function getValue()
{
return 'some returned value';
}
public function getValueWithArgu($str)
{
return 'returned value is '.$str;
}
};
}
echo "
";
var_dump($ano_class_obj_with_func);
echo "
";
echo $ano_class_obj_with_func->prop1;
echo "
";
echo $ano_class_obj_with_func->prop2;
echo "
";
echo $ano_class_obj_with_func::SETT;
echo "
";
echo $ano_class_obj_with_func->getValue();
echo "
";
echo $ano_class_obj_with_func->getValueWithArgu('OOP');
echo "
";
echo "
";
$arg = 1;
$config = [2, false];
$ano_class_obj_with_arg = ano_func_with_arg($arg, $config);
function ano_func_with_arg($arg, $config)
{
return new class($arg, $config) {
public $prop1 = 'hello';
public $prop2 = 754;
public $prop3, $config;
const SETT = 'some config';
public function __construct($arg, $config)
{
$this->prop3 = $arg;
$this->config =$config;
}
public function getValue()
{
return 'some returned value';
}
public function getValueWithArgu($str)
{
return 'returned value is '.$str;
}
};
}
echo "
";
var_dump($ano_class_obj_with_arg);
echo "
";
echo $ano_class_obj_with_arg->prop1;
echo "
";
echo $ano_class_obj_with_arg->prop2;
echo "
";
echo $ano_class_obj_with_arg::SETT;
echo "
";
echo $ano_class_obj_with_arg->getValue();
echo "
";
echo $ano_class_obj_with_arg->getValueWithArgu('OOP');
echo "
";
echo "
";