怎么在Laravel中使用魔术方法


本篇内容主要讲解“怎么在Laravel中使用魔术方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Laravel中使用魔术方法”吧!重要的是,要了解魔术方法并不是Laravel独有的,而是可以在任何PHP应用中使用。Laravel恰好有一些最有趣的魔术方法用例。魔术方法是在PHP中声明的任何类中都可以使用的方法,它提供了在类中实现附加功能的方法。这里有一个很好的定义:魔术方法永远不会被程序员调用——实际上,PHP将在后台调用该方法。这就是为什么它们被称为“魔术”方法——因为它们从来没有被直接调用,它们允许程序员做一些非常强大的是事情。总共有15中魔术方法:如果您用PHP做过一些面向对象的编程,那么您一定知道 __construct 方法,这是一个魔术方法。所以您一直在使用魔术方法。您还注意到,所有的魔术的方法都是以“__”为前缀的。__get()Laravel中的模型非常特别。它们不将属性数据存储为类的直接属性,而是存储在protected $attributes 属性中,该属性是模型所保存的所有数据的相关数组。让我们看看简单的PHP类和Laravel模型访问属性的区别。我们可以看到,上面的PHP和Laravel类的行为完全相同。然而,在Laravel的例子中,属性不像普通PHP那样存储,而是集中在一个名为$attributes的属性中。我们仍然设法访问正确的数据,但是如何访问呢?这一切都是可能的,这是因为_get魔术方法。让我们自己尝试实现一个简单的例子。我们做到了! ?我们需要注意,只有在类中找不到具有匹配名称的属性时,才会调用魔术方法_get。这是一种后备方法,当PHP在类中找不到所访问的属性时调用。因此,在下面的示例中,根本不会调用魔术方法_get。有更多的事情在幕后发生。如果你想更多地了解 Laravel 的模型是如何确切地使用 __get 的,你可以查看下面的源代码。laravel/framework__set()当试图设置的属性没有在类中声明时,使用魔术方法_set。让我们再次看看normal PHP类和Laravel中model模型的区别。如我们所见,在此示例中,我们仍然尝试影响Bob的值,该值在类中实际上不存在但位于属性$ attributes中。让我们尝试使用魔术方法__ set现在我们开始!我们在Laravel中成功实施了__ get__ set魔术方法的基本用法!他们只需几行代码就能完成!请记住,这些魔术方法尽可能简单,而不必涉及太多细节,因为除了那些还有更多而不仅仅是用例,如果您对它的工作原理感到好奇,我邀请您亲自做一些探索! (如果您有任何疑问,也可以随时在Twitter上与我联系)同样,如果您想进一步挖掘,请在此处链接到源代码laravel/framework让我们继续最后一个也是最有趣的一个事! ?__call() & __callStatic()当调用的方法在类中找不到时,__call()会被调用。 在laravel中免费云主机域名,该魔术方法方法使宏在 php 中成为可能。我不会深入讨论宏的所有细节,但如果您感兴趣,这里有一篇很好的文章解释了如何在 Laravel 应用程序中使用它们?The Magic of Laravel Macros让我们试着看看如何编写一个简单的宏示例。使用 __call ,可以定义一个包含闭包函数的数组,在我们开发时可以程序化地添加到应用里。宏要比那个复杂一些,但是我们设法使用 __call 魔术方法来创建一个宏的简单工作版本。除了对于静态方法, __callStatic__call 是完全一样的。到此,相信大家对“怎么在Laravel中使用魔术方法”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: NPM实用技巧有哪些

今天小编给大家分享一下NPM实用技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、软件包初始化您想要快速初始化一个新的软件包吗?免费云…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/03 15:41
下一篇 04/03 15:41

相关推荐