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 相关文章推荐
BBS(php & mysql)完整版(八)
Oct 09 PHP
支持oicq头像的留言簿(一)
Oct 09 PHP
php中几种常见安全设置详解
Apr 06 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
基于php中使用excel的简单介绍
Aug 02 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
TP5.0框架实现无限极回复功能的方法分析
May 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
Terran魔法科技
2020/03/14 星际争霸
PHP获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
uniapp实现横向滚动选择日期
2020/10/21 Javascript
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python读写Excel文件方法介绍
2014/11/22 Python
Python中用于计算对数的log()方法
2015/05/15 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
七年级生物教学反思
2014/01/30 职场文书
合作经营协议书范本
2014/04/17 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书