返回列表 发帖
查看: 11018|回复: 8

请教开发大佬问题! 类里的方法加&前缀是啥意思?啥作用?

3

主题

21

回帖

32

积分

应用开发者

贡献
0 点
金币
7 个
QQ
发表于 2020-11-8 21:15:56 | 显示全部楼层 |阅读模式
自己写的插件不太好, 老有问题

但是自己用TP框架写的程序还蛮好, 所以不是代码水平问题,   我将其归为"对discuz不熟悉"


于是来学习discuz源码, 期望多写一些插件, 质量好一点的插件!

  1. class discuz_ftp
  2. {
  3.         var $enabled = false;
  4.         var $config = array();
  5.         var $func;
  6.         var $_error;
  7.         var $currentdir = '/';
  8.         var $connectid;
  9.         function &instance($config = array()) {
  10.                 static $object;
  11.                 if(empty($object)) {
  12.                         $object = new discuz_ftp($config);
  13.                 }
  14.                 return $object;
  15.         }

  16.         function __construct($config = array()) {
  17.                 $this->set_error(0);
  18.                 $this->config = !$config ? getglobal('setting/ftp') : $config;
  19.                 $this->enabled = false;
  20.                 if(empty($this->config['on'])) {
  21.                         $this->set_error(FTP_ERR_CONFIG_OFF);
  22.                 } else {
  23.                         $this->enabled = true;
  24.                 }
  25.         }
复制代码
请问, 1, instance方法前面的&符号有啥用?  啥意思?
2,这个是别人插件里的类文件, 和系统自带的discuz_ftp类重名了,  没有命名空间,为啥不报错呢?
接定制开发,uniapp,原生小程序
回复

使用道具 举报

56

主题

1455

回帖

3万

积分

管理员

贡献
2072 点
金币
1383 个
发表于 2021-1-9 13:10:48 | 显示全部楼层
系统自带的discuz_ftp类默认没加载,插件加载了同名类,后续也不会再加载自带的discuz_ftp类
回复 支持 1 反对 0

使用道具 举报

5

主题

39

回帖

50

积分

应用开发者

贡献
0 点
金币
3 个
发表于 2021-10-22 08:56:46 | 显示全部楼层
可以可以,学习到了。
回复 支持 反对

使用道具 举报

1

主题

33

回帖

63

积分

应用开发者

贡献
0 点
金币
27 个
发表于 2022-6-4 09:29:52 | 显示全部楼层
学习学习。
回复

使用道具 举报

3

主题

21

回帖

32

积分

应用开发者

贡献
0 点
金币
7 个
QQ
 楼主| 发表于 2023-12-30 13:00:26 | 显示全部楼层
dashen 发表于 2021-1-9 13:10
系统自带的discuz_ftp类默认没加载,插件加载了同名类,后续也不会再加载自带的discuz_ftp类 ...

谢谢!验证后是这样的。如果引入了同名的类,后面加载的类就不会再引进了。
所以后续开发新功能,可以接管系统的同类名
接定制开发,uniapp,原生小程序
回复 支持 反对

使用道具 举报

8

主题

1498

回帖

2590

积分

应用开发者

贡献
176 点
金币
123 个
QQ
发表于 2024-3-20 17:43:59 | 显示全部楼层
1、可参考 https://www.php.cn/faq/369829.html
2、discuzX的类是自动加载,且  插件的 加载优先于类的自动加载
专业解决各类服务器问题 和 discuz疑难杂症!
QQ 860855665 西部数码核心代理www.wensuhulian.com 飘仙建站论坛bbs.piaoxian.net
discuz互助QQ群 73131419
回复 支持 反对

使用道具 举报

头像被屏蔽

0

主题

1

回帖

5

积分

禁止发言

贡献
0 点
金币
4 个
发表于 2024-4-9 14:50:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

3

主题

21

回帖

32

积分

应用开发者

贡献
0 点
金币
7 个
QQ
 楼主| 发表于 2024-4-18 00:40:57 | 显示全部楼层
dashen 发表于 2021-1-9 13:10
系统自带的discuz_ftp类默认没加载,插件加载了同名类,后续也不会再加载自带的discuz_ftp类 ...

谢谢! 做了一些测试,如大家所说的,是PHP的自动加载特性,且插件优先加载
接定制开发,uniapp,原生小程序
回复 支持 反对

使用道具 举报

3

主题

21

回帖

32

积分

应用开发者

贡献
0 点
金币
7 个
QQ
 楼主| 发表于 2024-4-18 00:41:34 | 显示全部楼层
天外飘仙 发表于 2024-3-20 17:43
1、可参考 https://www.php.cn/faq/369829.html
2、discuzX的类是自动加载,且  插件的 加载优先于类的自动 ...

飘仙大佬,谢谢! 做了一些测试,确实如此
接定制开发,uniapp,原生小程序
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2024-4-29 10:54 , Processed in 0.042808 second(s), 6 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2024 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表