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