《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
关于 LearnKu
static functionconststatic $abc都是大量使用的,尤其在Model层,因为应用静态的变量、方法,常量不是特定的对象,而是类。 例如:消息有N多个频道,const SYSTEM = 'system';const NOTICE = 'notice'; 例如:定义频道的名称例如:给用户发送通知
我的理解是,常用方法,程序中有多个类经常调用的方法发,之间又没有继承关系的,使用
静态,常驻内存,不需要每次实例化,方便调用速度快,因为是经常调用,所以占用内存也没关系。需要按需加载,不会被多个类调用的方法,使用频次少,使用
动态,线程结束后会被gc自动清理。我也想知道静态和非静态的实际区别。静态是常驻内存,想问一下,如果有多个web客户端请求接口,那么这个时候应该会有多个work进程。多个work进程是同时使用这些静态变量或静态方法吗?还是
实例是单独的内存,实例是属性集,属性集可能也有单独的内存划分,但是静态的不一样,他们是固定的一块内存划分, php官方的这个示例也说明了
很多时候我并没有以为理解了、懂了。
一个语言百分之八十的功能,大部分人都用不到,这是事实。
在编码的时候,一个对象去描述一个子逻辑的时候,这个对象与之相关的属性都应该用到实例方法。举个例子,实例化了一个学生对象,有姓名有学号有班级等属性,那么在获取班级的时候读取数据不应该来自于一个静态方法,而来自学生对象提供的实例方法。
静态方法的存在是为某些时候提供一些便捷。比如验证一个学生是否属于某个学校的时候,使用静态方法传入学生id和学校id要比实例化学生对象和学校对象要便捷得多。
以上不是一个完整过程的探讨,论坛只能聊简洁的观点,有机会在线下畅谈吧。
理论上静态方法比实例化要快,代码里一般是写service层比较多
表示没看懂评论区的讨论······
看了下评论,说下我现在主要应用静态方法的位置
框架: hyperf/laravel
场景:工具类和代理
工具类主要是没有任何耦合,且仅仅是为了处理某一个行为,
门面:分发到对应的业务,例如 附件上传,做成门面,然后具体调用具体的类,别人不需要关注里面的实现流程, 直接 Class::function() 即可
不过 不建议到处都是static,如果全局都是static,为什么不直接考虑函数编程