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
相对路径转化成绝对路径
Apr 10 PHP
php 分页类 扩展代码
Jun 11 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
Jun 20 PHP
PHP自动生成表单代码分享
Jun 19 PHP
Symfony2 session用法实例分析
Feb 04 PHP
thinkPHP多语言切换设置方法详解
Nov 11 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
PDO::rollBack讲解
Jan 29 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 26 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
php实现的简单检验登陆类
2015/06/18 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
jquery获取input表单值的代码
2010/04/19 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
python简单的函数定义和用法实例
2015/05/07 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
Python单例模式的两种实现方法
2017/08/14 Python
Python冲顶大会 快来答题!
2018/01/17 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
python实现键盘输入的实操方法
2019/07/16 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
2014年大学生党员评议表自我评价
2014/09/20 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
心理学培训心得体会
2016/01/22 职场文书
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电