gpt4 book ai didi

php - PHP魔法方法的实际应用——__get、__set和__call

转载 作者:行者123 更新时间:2023-12-03 00:11:14 24 4
gpt4 key购买 nike

我通常会尝试远离 PHP 的魔术方法,因为它们似乎混淆了对象的公共(public)接口(interface)。也就是说,它们似乎被越来越多地使用,至少在我读过的代码中,所以我不得不问:对于何时使用它们有任何共识吗?这三种魔法方法的使用有什么共同的模式吗?

最佳答案

主要原因是您不需要输入太多内容。您可以将它们用于 ORM 记录并充当隐式 setter/getter:

使用__call():

$user = new User();
$user->setName("Foo Bar");
$user->setAge(42);
$user->save();

使用__set():

$user->name = "Foo Bar";
$user->age = 42;

映射到一个简单的数组:

array(
"name" => "Foo Bar",
"age" => 42
)

将这样的数组写入数据库比进行大量手动调用来收集所有需要的信息要容易得多。与公共(public)成员相比,__set()__get() 还具有另一个优势:您可以验证/格式化您的数据。

关于php - PHP魔法方法的实际应用——__get、__set和__call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5979830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com