PHP-X 系列教程:內置函數的使用

本文主要介紹PHP-X內置函數的使用,在PHP擴展開發中,會常常用到這些內置函數,PHP-X的封裝,使得調用這些函數像PHP代碼同樣簡單。php

echo

在擴展中須要輸出一些內容,能夠使用echo函數。echo的使用方法與C語言的printf是徹底一致的。具體請參考printf相關文章。apache

  • 在命令行環境(cli),echo會打印屏幕
  • php-fpmapache中,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錯誤日誌,至關於PHPtrigger_error函數。此函數與echo很類似,惟一不一樣的插入了第一個參數,來接受錯誤等級,如E_ERRORE_WARNINGphp-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());
}

constant

獲取常量的值。此函數能夠用於獲取define定義的常量以及const定義的類常量。命令行

PHPX_FUNCTION(cpp_test)
{
    auto a = constant("PHP_VERSION");
    auto b = constant("PDO::VERSION");
    var_dump(a);
    var_dump(b);
}

global

獲取全局變量的值。包括PHP的超全局變量和其餘PHP代碼使用global關鍵詞聲明的全局變量。調試

PHPX_FUNCTION(cpp_test)
{
    //至關於 $_GET
    auto a = global("_GET");
    //至關於 global $config
    auto b = global("config");
    var_dump(a);
    var_dump(b);
}
相關文章
相關標籤/搜索