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具体实现代码
Oct 12 PHP
PHP数组交集的优化代码分析
Mar 06 PHP
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
Jul 09 PHP
laravel返回统一格式错误码问题
Nov 04 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 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将时间差转换为字符串提示
2011/09/07 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
js利用div背景,做一个竖线的效果。
2008/11/22 Javascript
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
python中私有函数调用方法解密
2016/04/29 Python
Python中函数参数调用方式分析
2018/08/09 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
Python列表与元组的异同详解
2019/07/02 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
python中pow函数用法及功能说明
2020/12/04 Python
html5的localstorage详解
2017/05/09 HTML / CSS
高中生毕业自我鉴定
2013/10/10 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
捐赠仪式主持词
2014/03/19 职场文书
道德之星事迹材料
2014/05/03 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
党小组意见范文
2015/06/08 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
如何写通讯稿
2015/07/22 职场文书
离婚财产分割协议书
2015/08/11 职场文书
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers