<?php
set_error_handler('myErrorHandler');
register_shutdown_function('fatalErrorShutdownHandler');
echo 'Handler ..';
function myErrorHandler($code, $message, $file, $line) {
}
function fatalErrorShutdownHandler()
{
$last_error = error_get_last();
if ($last_error['type'] === E_ERROR) {
// fatal error
myErrorHandler(E_ERROR, $last_error['message'], $last_error['file'], $last_error['line']);
}
}
final class valueobjectEmail {
const EMAIL = "me@where.com";
static $p = "me@here.com"; // can't unset static property
private $pp = "me@there.org"; // but may unset ppp properties
function getProp(){
return valueobjectEmail::$p;
}
function setProp(){
valueobjectEmail::$p = 'blee';
}
function getPropPP(){
return $this->pp;
}
function UnsetPP() {
unset($this->pp);
}
function __destruct() {
return void();
}
}
$vo = new valueobjectEmail;
var_dump($vo);
echo $vo->getProp(),"\n";
$vo->setProp();
echo $vo->getProp(),"\n";
$vo2 = new valueobjectEmail;
echo $vo == $vo2,"\n";
echo $vo === $vo2,"\n";
echo "\n",$vo2->getPropPP(),"\n";
$vo2->UnsetPP();
var_dump($vo2);
echo $vo::EMAIL,"\n";
try {
$vo = null;
} catch(Exception $e) {
echo $e->getMessage();
} finally {
echo "You may not destroy the value object","\n";
}
var_dump($vo);
preferences:
42.2 ms | 402 KiB | 5 Q