3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php interface OwnerInterface { public function setData($data); public function getOwnerId($name); public function getOwner($ownerId); } interface AssetInterface { public function setData($data); public function getAssetId($ownerId); public function getAsset($assetId); } class Asset implements AssetInterface, OwnerInterface { protected $assetId; // string or int? DB autogen? protected $assetType; // string protected $assetSubType; protected $ownerId; // protected $owner; // object protected $beneficiary; // string public function setData($data) { } public function getAssetId($ownerId) { } public function getAsset($assetId) { return $this; } public function getAssetType($assetId) { } public function getAssetSubType($assetId) { } public function getOwnerId($name) { } public function getOwner($ownerId) { return $this->owner; // Owner object; I don't think this is the owner object } public function setAssetId($assetId) { } public function setAsset($assetId) { } public function setAssetType($assetId) { } public function setAssetSubType($assetId, $subType) { $this->assetSubType=$subType; } public function setOwnerId($ownerId) { } } ////////////////////////////////////////////////////////// $asset=new Asset(); $assetId="A0001"; $assetType="BUILDING"; $assetSubType="Gas Station"; $ownerId="Current Owner Id"; $asset->$assetId=$assetId; // string or int? DB autogen? $asset->$assetType=$assetType; // string $asset->$ownerId=$ownerId; // $asset->$assetSubType=$assetSubType; // string var_dump($asset);
based on JBSnh
Output for 5.6.38 - 7.2.12
object(Asset)#1 (10) { ["assetId":protected]=> NULL ["assetType":protected]=> NULL ["assetSubType":protected]=> NULL ["ownerId":protected]=> NULL ["owner":protected]=> NULL ["beneficiary":protected]=> NULL ["A0001"]=> string(5) "A0001" ["BUILDING"]=> string(8) "BUILDING" ["Current Owner Id"]=> string(16) "Current Owner Id" ["Gas Station"]=> string(11) "Gas Station" }