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正确配置mysql(apache环境)
Aug 28 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
PHP 5.6.11中CURL模块问题的解决方法
Aug 08 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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 应用容器化以及部署方法
2018/02/12 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍
2016/06/24 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
详解python单例模式与metaclass
2016/01/15 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
Python守护进程实现过程详解
2020/02/10 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
Keras实现DenseNet结构操作
2020/07/06 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
单位工作证明
2014/10/07 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
java executor包参数处理功能 
2022/02/15 Java/Android