• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php中的require到底是函数还是语法

php 搞代码 3年前 (2022-01-25) 16次浏览 已收录 0个评论
文章目录[隐藏]

我发现两种用法都可以require('functions.php')require 'functions.php',那么它在php中到底是语法还是函数呢?我们能否在自己写php插件时也实现这样的用法?也就是可以这样用my_custom 'parms'

回复内容:

我发现两种用法都可以require('functions.php')require 'functions.php',那么它在php中到底是语法还是函数呢?我们能否在自己写php插件时也实现这样的用法?也就是可以这样用my_custom 'parms'

语法
Zend/zend_language_scanner.l

"eval" {	return T_EVAL;}"include" {	return T_INCLUDE;}"include_once" {	return T_INCLUDE_ONCE;}"require" {	return T_REQUIRE;}"require_once" {	return T_REQUIRE_ONCE;}

Zend/zend_language_parser.y

internal_functions_in_yacc:		T_ISSET '(' isset_variables ')' { $$ = $3; }	|	T_EMPTY '(' variable ')'	{ zend_do_isset_or_isempty(ZEND_ISEMPTY, &$$, &$3 TSRMLS_CC); }	|	T_INCLUDE expr 			{ zend_do_include_or_eval(ZEND_INCLUDE, &$$, &$2 TSRMLS_CC); }	|	T_INCLUDE_ONCE expr 	{ zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &$$, &$2 TSRMLS_CC); }	|	T_EVAL '(' expr ')' 	{ zend_do_include_or_eval(ZEND_EVAL, &$$, &$3 TSRMLS_CC); }	|	T_REQUIRE expr			{ zend_do_include_or_eval(ZEND_REQUIRE, &$$, &$2 TSRMLS_CC);<span>%本文来源gaodai#ma#com搞*代#码9网#</span><strong>搞gaodaima代码</strong> }	|	T_REQUIRE_ONCE expr		{ zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &$$, &$2 TSRMLS_CC); };

Zend/zend_compile.c

void zend_do_include_or_eval(int type, znode *result, const znode *op1 TSRMLS_DC) {	zend_do_extended_fcall_begin(TSRMLS_C);	{		zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);		opline->opcode = ZEND_INCLUDE_OR_EVAL;		opline->result_type = IS_VAR;		opline->result.var = get_temporary_variable(CG(active_op_array));		SET_NODE(opline->op1, op1);		SET_UNUSED(opline->op2);		opline->extended_value = type;		GET_NODE(result, opline->result);	}	zend_do_extended_fcall_end(TSRMLS_C);}

require是 PHP 中的关键字。

f()这样的用法并不意味着f是函数。例如,print('hi'也可以,但是 print 并非函数。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php中的require到底是函数还是语法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址