Ferreteria/v0.6/clade/Data/Mem/QVar/Obj: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{page/clade/v2 |fam= {{!}} align=right {{!}} {{l/ver/clade|Data\Mem|QVar}} {{!}} align=center {{!}} → {{l/ver/clade|Data\Mem\QVar|Obj}} → {{!}} align=left {{!}} {{l/ver/clade|Data\Mem\QVar\Obj|Strict}} |alia= {{!}}- {{!}} '''Base'''* [ca,i] {{!!}} {{l/ver/clade/full|p=ferreteria|Data\Mem|QVar}} {{!}}- {{!}} '''TypesStatic''' [cs] {{!!}} {{l/ver/clade/full|p=ferreteria|Data\Mem\Val|Types}} }} ==Code== ''as of 2025-10-17'' {{fmt/php/block|1= interface iObj ex...") |
No edit summary |
||
| Line 48: | Line 48: | ||
public function GetIt() : object { return $this->GetObj(); } | public function GetIt() : object { return $this->GetObj(); } | ||
public function GetItNz(object $oDefault=NULL) : ?object { return $this->GetObjNz($oDefault); } | public function GetItNz(object $oDefault=NULL) : ?object { return $this->GetObjNz($oDefault); } | ||
// ++ ACCESS: internal ++ // | // ++ ACCESS: internal ++ // | ||
| Line 73: | Line 65: | ||
die(); | die(); | ||
} | } | ||
if (CHECK_ASSERTS) $this->HardAssert(FALSE,"expected an object, found $sLine"); | if (CHECK_ASSERTS) $this->HardAssert(FALSE,"expected an object, found $sLine"); | ||
} | } | ||
Latest revision as of 13:58, 17 October 2025
| ||||||||||||||||
Code
as of 2025-10-17
interface iObj extends BaseIface {
// SETUP
static function FromObject(object $o) : self;
static function FromObjNz(object &$o) : self;
// VALUE ACCESS
function SetIt(object $v);
function SetItNz(?object $v);
function GetIt() : object;
function GetItNz(?object $vDefault=NULL) : ?object;
}
class cObj extends BaseClass implements iObj {
// ++ SETUP ++ //
static public function FromObject(object $o) : self {
$oThis = new static;
$oThis->SetIt($o);
return $oThis;
}
static public function FromObjNz(object &$o) : self {
$oThis = new static;
$oThis->RefIt($o);
}
// -- SETUP -- //
// ++ ACCESS ++ //
public function HasIt() : bool { return $this->HasObj(); }
public function SetIt(object $o) { $this->SetObj($o); }
public function SetItNz(?object $o) { $this->SetObjNz($o); }
public function GetIt() : object { return $this->GetObj(); }
public function GetItNz(object $oDefault=NULL) : ?object { return $this->GetObjNz($oDefault); }
// ++ ACCESS: internal ++ //
protected function TypeOk(mixed $v) : bool { return is_object($v); }
static private $nObjectLoop = 0;
protected function Validated() : object {
$nLoop = self::$nObjectLoop;
self::$nObjectLoop++;
$o = $this->v;
if (DEBUG_CHECK_TYPES && !is_object($o)) {
if ($nLoop < MAX_INTERNAL_RECURSION) {
$sLine = TypesStatic::DumpLine($o);
} else {
echo "DEBUG RECURSION (N=$nLoop); skipping DumpLine() and quitting.<br>";
die();
}
if (CHECK_ASSERTS) $this->HardAssert(FALSE,"expected an object, found $sLine");
}
self::$nObjectLoop--;
return $o;
}
// -- ACCESS -- //
}