PHP-X系列教程之内置函数的使用示例


Posted in PHP onOctober 16, 2017

前言

本文主要给大家介绍关于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");
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php 页面执行时间计算代码
Dec 04 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
解析PHP对现有搜索引擎的调用
Jun 25 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
PHP生成plist数据的方法
Jun 16 PHP
PHP实现合并discuz用户
Aug 05 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
PHP后门隐藏的一些技巧总结
Nov 04 PHP
php封装单文件上传到数据库(路径)
Oct 15 #PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 #PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 #PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 #PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 #PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 #PHP
PHP长网址与短网址的实现方法
Oct 13 #PHP
You might like
PHP中的cookie
2006/11/26 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
js中string转int把String类型转化成int类型
2014/08/13 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
JS简单实现点击复制链接的方法
2016/08/03 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Python设计模式之观察者模式实例
2014/04/26 Python
python编程开发之日期操作实例分析
2015/11/13 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
python如何将两个txt文件内容合并
2019/10/18 Python
python中with用法讲解
2020/02/07 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
iPython pylab模式启动方式
2020/04/24 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
Python如何给你的程序做性能测试
2020/07/29 Python
公交公司毕业生求职信
2014/02/15 职场文书
计算机专业自荐信
2014/05/24 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python