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 09 PHP
PHPlet在Windows下的安装
Oct 09 PHP
第六节--访问属性和方法
Nov 16 PHP
PHP详细彻底学习Smarty
Mar 27 PHP
php 全局变量范围分析
Aug 07 PHP
关于JSON以及JSON在PHP中的应用技巧
Nov 27 PHP
php去除字符串换行符示例分享
Feb 13 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
PHP基于ORM方式操作MySQL数据库实例
Jun 21 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 PHP
PHP延迟静态绑定使用方法实例解析
Sep 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变量修饰符static的使用
2013/06/28 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
JS常见算法详解
2017/02/28 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python用户管理系统
2018/03/13 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
python验证身份证信息实例代码
2019/05/06 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
如何进行Linux分区优化
2013/02/12 面试题
新闻专业应届生求职信
2013/10/31 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
python源码剖析之PyObject详解
2021/05/18 Python
Python 文字识别
2022/05/11 Python
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python