在PHP中,非匿名函数可以从父作用域继承变量吗?

时间:2016-09-26 18:48:52

标签: php scope

我正在用PHP编写基本的插件系统。我已经研究了装饰者和观察者。

为了保持较小的学习曲线,我希望能够在关键位置编写field_to_update(不传递任何其他参数),并将其替换为共享的一些相应代码相同的变量范围,好像我只是简单地subjobs_subjobid = request.POST[('subjob_id')] field_to_update = ('subjob_name','subjob_type', 'rerun_id', 'priority_id', 'transfer_method', 'suitefile', 'topofile') post_data = request.POST to_be_updated = {field: post_data.get(field) for field in field_to_update if field in post_data} # then you need to get the object, not filter it try: subjobinstance = SubJobs.objects.get(id=subjobs_subjobid) subjobinstance.update(**to_be_updated, updated=datetime.now()) except ObjectDoesNotExist: # from django.core.exceptions print('There is no such object') # better to use logger except Exception as e: print("PROBLEM UPDAING SubJob!!!!") print(e.message) 代码。

目前,hook($someHookNumber)运行已在给定钩子编号(在本例中为1)注册调用方法(和类)的任何函数。因此,范围至少是方法下面的两个函数这叫做include

虽然像hook(1)这样的成员变量可以被完美地操作,但是两个函数向下(如果被对象调用),任何非成员变量(如hook())都只能在插件函数的范围内进行操作。

简单的解决方案是“只使用成员变量”或“使用全局变量”,但我宁愿$this->exampleVariable尽可能与$text类似,以避免将来出现问题。

0 个答案:

没有答案