【发布时间】:2011-06-23 12:38:14
【问题描述】:
我在 PHP 中有一个名为 product 的自定义类对象:
final class product
{
public $id;
public $Name;
public $ProductType;
public $Category;
public $Description;
public $ProductCode;
}
当将此类的对象传递给我的数据访问层时,我需要将传递的对象转换为 product 类的类型,以便我可以与该函数中的属性对话。由于 PHP 中的类型转换仅适用于基本类型,因此转换传递的对象的最佳解决方案是什么?
final class productDAL
{
public function GetItem($id)
{
$mySqlConnection = mysql_connect('localhost', 'username', 'password');
if (!$mySqlConnection) { trigger_error('Cannot connect to MySql Server!'); return; }
mysql_select_db('databaseName');
$rs = mysql_query("SELECT * FROM tblproduct WHERE ID='$id';");
$returnObject = mysql_fetch_object($rs, 'product');
return $returnObject;
}
public function SaveItem($objectToSave, $newProduct = false)
{
$productObject = new product();
$productObject = $objectToSave;
echo($objectToSave->Name);
$objectToSave->ID;
}
}
现在我正在创建一个新对象,该对象转换为 product 类型,然后将其设置为等于传递给函数的对象。有没有更好的方法来完成这项任务?我是不是走错路了?
为清晰而编辑 - 添加完整的 PRODCUTDAL 类
【问题讨论】:
-
哦,也许你的目标是interfaces?然后你可以在你的函数签名中type-hint这个接口,因此确保所有的对象都收缩为具有这些属性(即使接口是空的)。