本文主要介紹PHP-X
內置函數的使用,在PHP
擴展開發中,會常常用到這些內置函數,PHP-X
的封裝,使得調用這些函數像PHP
代碼同樣簡單。php
在擴展中須要輸出一些內容,能夠使用echo
函數。echo
的使用方法與C
語言的printf
是徹底一致的。具體請參考printf
相關文章。apache
echo
會打印屏幕php-fpm
或apache
中,echo
會輸出內容到瀏覽器客戶端PHPX_FUNCTION(cpp_test) { echo("a=%d, b=%f, c=%s.\n", args[0].toInt(), args[1].toFloat(), args[2].toCString()); }
開發調試PHP
程序時,常常須要打印一些變量的值。PHP
提供了var_dump
函數來打印變量。在PHP-X
中也能夠使用var_dump
,這個函數接受一個Variant
對象。瀏覽器
PHPX_FUNCTION(cpp_test) { var_dump(args[0]); }
包含PHP
文件。注意文件不存在會拋出致命錯誤。正確加載後,此PHP
文件中的代碼將被執行。能夠使用include
在擴展中引入PHP
代碼實現的類和函數。函數
PHPX_FUNCTION(cpp_test) { include("/data/php/library/Autoloader.php"); }
打印PHP
錯誤日誌,至關於PHP
的trigger_error
函數。此函數與echo
很類似,惟一不一樣的插入了第一個參數,來接受錯誤等級,如E_ERROR
或E_WARNING
。php-fpm
PHPX_FUNCTION(cpp_test) { error(E_ERROR, "error: a=%d, b=%f, c=%s.\n", args[0].toInt(), args[1].toFloat(), args[2].toCString()); }
獲取常量的值。此函數能夠用於獲取define
定義的常量以及const
定義的類常量。命令行
PHPX_FUNCTION(cpp_test) { auto a = constant("PHP_VERSION"); auto b = constant("PDO::VERSION"); var_dump(a); var_dump(b); }
獲取全局變量的值。包括PHP
的超全局變量和其餘PHP
代碼使用global
關鍵詞聲明的全局變量。調試
PHPX_FUNCTION(cpp_test) { //至關於 $_GET auto a = global("_GET"); //至關於 global $config auto b = global("config"); var_dump(a); var_dump(b); }