我读到可以通过编写扩展来在PHP中使用C/C++代码。是否有更简单的方法,例如使用魔术包装或类似的东西(我必须说,我听过这个词,但不太了解包装器是什么)。
我读到可以通过编写扩展来在PHP中使用C/C++代码。是否有更简单的方法,例如使用魔术包装或类似的东西(我必须说,我听过这个词,但不太了解包装器是什么)。
没有。
PHP只解析PHP代码,不解析C或其后代语言,如C++。
如果您想在PHP中包含C代码,比如一些用C编写的函数,那么它必须在扩展中被调用并编译。
包装器是围绕代码的代码。大多数语言,如Delphi、VB等,都有本地代码创建,然后调用外部API函数,在此过程中处理所需的任何类型转换或参数修复。
同类产品中,tcc 可以用作 C 语言解释器。你可以安装它,然后从 PHP 中向其发送 C 语言程序 :)
$output = `echo -e '#include <stdio.h>\nint main(void) { printf("Hello, World!\\n"); return 0;}' | tcc -run -`;
tcc
之前,我尝试了几个C解释器。 - pmg不能在PHP代码内部编写C或C++代码。唯一的方法是编写PHP扩展程序。另外,你可以查看HipHop-PHP,它可以将任何PHP代码转换为高度优化的C++代码(由Facebook开发)。
声明一下:
是的,你可以使用FFI扩展来实现:
<?php
// create FFI object, loading libc and exporting function printf()
$ffi = FFI::cdef(
"int printf(const char *format, ...);", // this is a regular C declaration
"libc.so.6");
// call C's printf()
$ffi->printf("Hello %s!\n", "world");
?>
它将返回
Hello world!