让我们说我正在编写一个将进行基本CRUD操作的类,所以我希望所有要插入数据库的值都是小写的。 所以,我确保构造函数中的值都是小写的,例如:
class Insert {
private $name;
private $lastname;
public function __construct($name, $lastname) {
$this->name = strtolower($name);
$this->name = strtolower($lastname);
}
}
$obj = new Insert('Jhon', 'Doe');
或者在创建实例之前,像这样:
class Insert {
private $name;
private $lastname;
public function __construct($name, $lastname) {
$this->name = $name;
$this->name = $lastname;
}
}
$obj = new Insert(strtolower('Jhon'), strtolower('Doe'));
答案 0 :(得分:1)
我会设置一个DTO来格式化值。更具可读性,你的班级不需要知道是否更严格,只设置变量。
DTO课程:
class UserDto
{
public $lastname;
public $name;
function __construct($name, $lastname)
{
$this->lastname = strtolower($lastname);
$this->name = strtolower($name);
}
}
然后你可以做
$userDto = new UserDto('Jhon', 'Doe');
$obj = new Insert($userDto);
$obj->save();
和
class Insert
{
private $name;
private $lastname;
public function __construct($userDto)
{
$this->name = $userDto->name;
$this->lastname = $userDto->lastname;
}
}
现在,如果有时您需要名称和姓氏不再需要strolower,您唯一需要做的就是更改类DTO而不影响Insert类。