PHP中的等效构造为Ruby的`__END__`或Perl的`__DATA__`

Bil*_*l_B 7 php syntax comparison

我正在从命令行使用PHP,我正在尝试将数据嵌入到源代码文件中.我可以使用__END__构造在Ruby中使用构造,在Perl中使用__DATA__构造,但我似乎无法找到在PHP中执行此操作的方法.目标是能够将数据嵌入PHP文件中,然后在执行期间将数据读入数组进行处理.我怎么能用PHP做到这一点?由于数据和文件执行的设置方式,将数据包含在单独的文件中并不是一个好的选择.

sal*_*the 9

您可以使用__halt_compiler()其目的,正如名称所示,为了将数据嵌入到文件的其余部分,精确地停止编译器.

一个基本的例子是:

<?php

// Do something boring here

$data = file_get_contents(__FILE__, FALSE, NULL, __COMPILER_HALT_OFFSET__);
$obj  = json_decode($data, TRUE);
echo $obj['message'];

__halt_compiler();
{"status":"example", "message":"hello, __halt_compiler!"}
Run Code Online (Sandbox Code Playgroud)

正如人们所预料的那样,输出是 hello, __halt_compiler!