好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php怎么定义函数 php如何定义一个函数?函数名区分大小写吗?

很多站长朋友们都不太清楚php怎么定义函数,今天小编就来给大家整理php怎么定义函数,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP如何自定义函数 2、 在PHP中如何正确创建函数 3、 php中使用什么函数定义一个自定义函数 PHP如何自定义函数

PHP如何自定义函数

使用 Function 来自定义一个函数:

格式为:

Function func_name($val){

……

}

函数的命名跟自定义变量一样,只能使用 _, A~Z, a~z

一个自定义函数中的变量是局部的',函数外不生效

使用global全局变量的时候,在函数外才可使用变量(不建议)

为了放置全局变量的混乱可以使用 unset($var)删除一个变量

使用自定义函数实例操作:

(1)使用return 函数返回函数内部值

(2)自定义函数值的接收和选择性接收

(3)function_exists() 判断函数是否存在

(4)引用返回值 使用符号 ;

在PHP中如何正确创建函数

Step 1 =>

php的扩展模块都放在 ext/ 目录下,比如说 snmp模块、mysql模块。 我们要建立自己的模块,就要在ext目录下为自己的模块建一个目录。比如,我们要做一个分析config文件的模块,命名为pconfig模块(parse config的简写),需在ext下建立目录pconfig。将我写好的7个文件copy到该目录下,另外需对主目录下的configure和internal_functions.c作一些修改。

Step 2 =>

Makefile.am Makefile.in

是模板文件,用户执行configure时,会调用这两个文件,生成编译时所用的Makefile文件。修改时将小写的pconfig换成你自己的模块名,别忘了把大写的PCONFIG也替换掉(不要告诉我你不会vi的替换语句)。config.m4也是执行configure将会调用的检测脚本程序,以后我们来讨论这些脚本程序的更深入的修改。现在你只需要把pconfig该成你的模块就可以了。对config.h.stub和setup.stub也如法炮制。其实setup.stub也没什么用。

Step 3 =>

php3-pconfig.h 头文件中

extern php3_module_entry pconfig_module_entry;

#define pconfig_module_ptr pconfig_module_entry

#define phpext_pconfig_ptr pconfig_module_ptr

这几行定义了模块的入口,将入口注册到php后,php会通过模块入口找到你写的函数

下面几个函数定义是用宏进行定义的,展开以后其实就是 php3_minit_pconfig , php3_rinit_pconfig ……分别在你的模块初试化或结束时被调用,如果你的模块很简单,也就不需要这些定义了

extern PHP_MINIT_FUNCTION(pconfig);

extern PHP_RINIT_FUNCTION(pconfig);

extern PHP_MSHUTDOWN_FUNCTION(pconfig);

PHP_MINFO_FUNCTION(pconfig);

这是你的函数声明,将来写在php脚本语句中的函数名就是在PHP_FUNCTION中定义的名字。

PHP_FUNCTION(pconfig_test);

如果有多个,还可以继续往下加

PHP_FUNCTION(pconfig_parsefile);

PHP_FUNCTION(pconfig_release); …….

Step 4 =>

接下来我们看最重点的C代码了

function_entry pconfig_functions[] = {

PHP_FE(pconfig_test, NULL)

{NULL, NULL, NULL}

};

定义的是你的函数的入口(前面我们提到过模块的入口),按照格式将你在头文件中定义的函数写进去吧。注意,这是用宏定义的,不要管语法是否正确。以后我们具体讨论这些宏的用法。

php3_module_entry pconfig_module_entry = {

"pconfig", pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES

};

注册模块的入口信息,比如模块名,函数接口,初试化模块将调用的函数等等,如果你的模块不执行复杂操作的话,可以忽略掉他们,写成

php3_module_entry pconfig_module_entry = {

"pconfig", pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES

};

Step 5 =>

写你自己的函数

在头文件和function_entry处,我们已经定义了自己的函数pconfig_test,现在我们就来实现pconfig_test的功能。就比如执行两个数相加的和吧。

static void _php3_pconfig_test(INTERNAL_FUNCTION_PARAMETERS)

{ ......

}

PHP_FUNCTION(pconfig_test)

{

_php3_pconfig_test(INTERNAL_FUNCTION_PARAM_PASSTHRU);

}

当系统调用pconfig_test时,会调用你的_php3_pconfig_test函数,当然你也可以把_php3_pconfig_test里的内容直接写在PHP_FUNCTION(pconfig_test)中,这样做只是程序结构比较清晰。注意:不要将_php3_pconfig_test命名成php3_pconfig_test,PHP_FUNCTION(pconfig_test)宏展开后实际上就是php3_pconfig_test!

Step 6 =>

好了,现在我们开始修改configure,在echo $ac_n "checking for MySQL support""... $ac_c" 1>6的前面(当然,如果你熟悉configure的话,可以加在任何合适的地方)加上下面几句话

if test "${with_pconfig+set}" = set; then

withval="$with_pconfig"

# Add your lib in here

EXTRA_LIBS="$EXTRA_LIBS"

# Add your include path in here

INCLUDES="$INCLUDES"

EXT_SUBDIRS="$EXT_SUBDIRS pconfig"

EXT_LIBS="$EXT_LIBS pconfig/libphpext_pconfig.a"

EXTINFO_DEPS="$EXTINFO_DEPS ext/pconfig/extinfo.c.stub"

EXT_STATIC="$EXT_STATIC pconfig"

fi

修改internal_functions.c,在头文件定义中加入#include "ext/pconfig/php3_pconfig.h"

在zend_module_entry数组中加入phpext_pconfig_ptr,

Step 7 =>

从新configure,带上需要的参数,不要忘记的是在参数里加入 --with-pconfig

Step 8 =>

index.php3

<? echo pconfig_test(123,678)."

"; ?>

执行%>php index.php3

810

php中使用什么函数定义一个自定义函数

php语言中,使用 function来声明一个函数 

如: 用function 声明一个名称为 get_article_info的函数,函数的参数为  $id

/**

 * 获得指定的文章的详细信息

 *

 * @access  private

 * @param   integer     $id

 * @return  array

 */

function get_article_info($id)

{

    /* 获得文章的信息 */

    $sql = "SELECT a.*, IFNULL(AVG(r.comment_rank), 0) AS comment_rank ".

            "FROM " .$GLOBALS['ecs']->table('article'). " AS a ".

            "LEFT JOIN " .$GLOBALS['ecs']->table('comment'). " AS r ON r.id_value = a.article_id AND comment_type = 1 ".

            "WHERE a.is_open = 1 AND a.article_id = '$id' GROUP BY a.article_id";

    $row = $GLOBALS['db']->getRow($sql);

    if ($row !== false)

    {

        $row['comment_rank'] = ceil($row['comment_rank']);                              // 用户评论级别取整

        $row['add_time']     = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']); // 修正添加时间显示

        /* 作者信息如果为空,则用网站名称替换 */

        if (empty($row['author']) || $row['author'] == '_SHOPHELP')

        {

            $row['author'] = $GLOBALS['_CFG']['shop_name'];

        }

    }

    return $row;

}

关于php怎么定义函数的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php怎么定义函数 php如何定义一个函数?函数名区分大小写吗?的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did211224
更新时间:2023-05-03   阅读:23次

上一篇: phpsock phpsocketio跨域

下一篇:apache.php apachephp7

相关资讯

最新资料更新

  • 1.php判断对象函数 php判断为空的方法有哪些
  • 2.php生成静态代码 php如何实现静态化
  • 3.学校php培训机构 php培训学校是什么意思
  • 4.phprsa密钥拼接 rsa加密解密
  • 5.php函数补全 php自动补全
  • 6.csrfphp防的简单介绍
  • 7.扫描登录php代码 扫描登录php代码错误
  • 8.hbuilder写php hbuilder写PHP
  • 9.phpstorm写前端 phpstorm写html
  • 10.php正则获取图片 php使用正则表达式
  • 11.php项目补充redis php+redis
  • 12.php怎么使用css php怎么使用数据库锁
  • 13.php项目任务分配 php任务调度框架
  • 14.php网站下载图片 网站的php文件下载
  • 15.韩顺平php视频教程下载 韩顺平oracle视频
  • 16.php网页打印控件谷歌 php打印插件
  • 17.php内核源码剖析 php源码使用教程
  • 18.包含phpautoconf的词条
  • 19.php获取post值 php如何获取url参数
  • 20.php环境配置工具 phpstorm2021配置php环境

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]