前言
本文主要給大家介紹關于PHP-X內置函數的使用,在PHP擴展開發中,會經常用到這些內置函數,PHP-X的封裝,使得調用這些函數像PHP代碼一樣簡單。
對php-x不熟悉的朋友們可以看下這篇文章:https://segmentfault.com/a/1190000011111074
echo
在擴展中需要輸出一些內容,可以使用echo函數。echo的使用方法與C語言的printf是完全一致的。具體請參考printf相關文章。
- 在命令行環境(cli),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());
}
var_dump
開發調試PHP程序時,經常需要打印一些變量的值。PHP提供了var_dump函數來打印變量。在PHP-X中也可以使用var_dump,這個函數接受一個Variant對象。
PHPX_FUNCTION(cpp_test)
{
var_dump(args[0]);
}
include
包含PHP文件。注意:文件不存在會拋出致命錯誤。正確加載后,此PHP文件中的代碼將被執行。可以使用include在擴展中引入PHP代碼實現的類和函數。
PHPX_FUNCTION(cpp_test)
{
include("/data/php/library/Autoloader.php");
}
error
打印PHP錯誤日志,相當于PHP的trigger_error函數。此函數與echo很相似,唯一不同的插入了第一個參數,來接受錯誤等級,如E_ERROR或E_WARNING。
PHPX_FUNCTION(cpp_test)
{
error(E_ERROR, "error: a=%d, b=%f, c=%s.\n", args[0].toInt(), args[1].toFloat(), args[2].toCString());
}
constant
獲取常量的值。此函數可以用于獲取define定義的常量以及const定義的類常量。
PHPX_FUNCTION(cpp_test)
{
auto a = constant("PHP_VERSION");
auto b = constant("PDO::VERSION");
}
global
獲取全局變量的值。包括PHP的超全局變量和其他PHP代碼使用global關鍵詞聲明的全局變量。
PHPX_FUNCTION(cpp_test)
{
//相當于 $_GET
auto a = global("_GET");
//相當于 global $config
auto b = global("config");
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。