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写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
linux下 C语言对 php 扩展
Dec 14 PHP
一贴学会PHP 新手入门教程
Aug 03 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
解析php时间戳与日期的转换
Jun 06 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
PHP消息队列用法实例分析
Feb 12 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
php 多文件上传的实现实例
Oct 23 PHP
Laravel下生成验证码的类
Nov 15 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 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
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JSONP之我见
2015/03/24 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
Python中使用动态变量名的方法
2014/05/06 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python批量解压zip文件的方法
2019/08/20 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
appium+python adb常用命令分享
2020/03/06 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
平面设计专业求职信
2014/08/09 职场文书
语文课外活动总结
2014/08/27 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
加薪通知
2015/04/25 职场文书
起诉书格式范文
2015/05/20 职场文书
父母教会我观后感
2015/06/17 职场文书
增值税发票丢失证明
2015/06/19 职场文书