0

0

php自定义函数如何引用外部变量?

伊谢尔伦

伊谢尔伦

发布时间:2017-06-26 10:53:42

|

3692人浏览过

|

来源于php中文网

原创

在写到评论的循环嵌套的时候遇到一个问题:
warning: invalid argument supplied for foreach() in /home/yiliaoba/domains/chaochaoblog.com/public_html/wp-content/themes/chaochao/comments.php on line 49
好了,出现了一个invalid argument,即一个不可用的参数。

这个问题是怎么产生的呢,回去找找代码如下:
foreach ($comments as $comment) :

这下就看出来了,$comments 是函数外的变量,而我们就在函数中使用了。按照一般程序编写的思路,函数外的变量应该是可以看成全局变量的,如果是全局变量的话,那么在函数中调用是完全没有问题的。

看来php和我们传统的思路有点问题,那么php中全局变量是怎么的呢,我特意编写代码试试看。

1.在外部用global定义直接输出:

global $mytext;
$mytext=”nihao”;
function chao_echo(){
echo $mytext;
}
chao_echo();

结果:没有输出;

立即学习PHP免费学习笔记(深入)”;

2.用GLOBALS数组输出:

global $mytext;
$mytext=”nihao”;
function chao_echo(){
echo $GLOBALS['mytext'];
}
chao_echo();

结果:输出正常

3.在函数内全局申明函数外的变量:

1CMS内容管理系统5.1
1CMS内容管理系统5.1

1CMS核心特点 安全稳定,轻量高效 采用精简代码架构,安装包体积不足1MB,无冗余功能,确保系统运行高效稳定。 广泛兼容性 全面支持PHP 5.2至PHP 8.4版本,适配MySQL及SQLite数据库,满足多样化部署需求。 灵活的内容管理 提供数十种专业输入字段类型,助力快速构建各类网站。 支持自定义栏目变量、文章字段及

下载
$mytext=”nihao”;
function chao_echo(){
global $mytext;
echo $mytext;
echo $GLOBALS['mytext'];
}
chao_echo();

结果:直接输出或者用GLOBALS全局数组输出都行。
4.将函数外部变量用参数传递进去:

$mytext=”nihao”;
function chao_echo($mytext){
echo $mytext;
}
chao_echo($mytext);

结果:可以输出。

总结一下,php中,函数内引用函数外的变量三种方法:

1.函数外global声明,函数内使用$_GLOBALS数组引用。

2.函数内global声明,函数内$_GLOBALS数组或者直接引用。

3.在调用函数的时候用一个参数传递。
那么,我们修改版的循环嵌套的函数如下



comment_parent==$chao_id)  >
    
    
comment_author_email,'32'); ?>
comment_date; ?> comment_time; ?>
comment_content; ?>
comment_ID,$comments); ?>

$chao_id是我们母评论的ID,即我们因该先输出不是回复的评论,在其末尾调用该回复输出函数。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

9

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

31

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

14

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

6

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

6

2026.01.15

php图片上传教程汇总
php图片上传教程汇总

本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

2

2026.01.15

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

PHP自制框架
PHP自制框架

共8课时 | 0.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号