如何在PHP中使用require_once()或include()函数包含特定函数?

问题描述:

如何根据包含各种函数定义的php文件的需求包含特定的函数。如何在PHP中使用require_once()或include()函数包含特定函数?

例如,
PHP文件的functions.php包含3个函数a(),B()和c()
我必须使用require_once( '/ F /的functions.php')在other.php文件来使用函数c 。

我能做些什么只包括函数c在文件other.php文件使用require_once()函数,并避免其他函数不包括在内?

+3

如果包含其他功能(a和b),会出现什么问题? –

+1

没问题,我只是想避免包含目前不需要的不必要的功能。 – xyz

+0

@xyz没有内置的方法来做到这一点。任何黑客的开销都比仅包含函数的开销要高。 – Kaspars

没有内置的方法来做到这一点。尽管如果你为这项运动做的话,还有很多方法可以解决它。

虽然这强烈不推荐。真的,只是不这样做...这里是如何:

1)阅读文件为文本。

2)发现功能块,并提取其

3)通过eval运行它。

这将导致在该文件中设置的任何全局状态不被运行。你可能会或可能不想要。

SuperClosure做类似我相信连载关闭,默认情况下PHP不支持的东西。

人们可以充分利用PHP7 abstract syntax tree还包括相关的功能。例如,如果定义了三个函数 - ABCA内部使用B。如果包含A,则还需要包含B

这不会是不仅仅包括整个文件更好的性能,但随时证明我是错的基准。


您可能也有兴趣namespaces。类和函数都支持它。

你不能,期间。 PHP没有任何模块系统。要“包含函数”,您只需执行一个源代码文件(include将执行的操作),这将通过执行文件中的代码来定义这些附加函数或文件中的其他任何内容。你不能有选择地只挑选要运行的代码的某些部分。

+0

不完全正确。手动解析文件,将文本提取为文本并通过'eval'运行它是可能的。尽管非常不推荐(请不要),但它是可行的。 – Kaspars

+1

@Kaspars这不是我曾经推荐过的事情,如果代码在同一文件中定义了与其他代码部分的关系,代码也不可执行。 – deceze

+0

@deceze同意。 :) –