hd.*_*hd. 9 php arrays global-variables
我必须在两个不同的文件中运行.其中一个应该在每次调用时向数组添加一个新项目,并且数组应该是可访问的.我为它做的是:
function1(){
global $array;
$array[] = 'hi';
}
Run Code Online (Sandbox Code Playgroud)
但它只是在数组中创建一个项目,即使我调用此函数4次.
Ali*_*aru 11
你做了什么应该工作.
<?php
function function1(){
global $array;
$array[] = 'hi';
}
function1();
function1();
function1();
print_r($array);
Run Code Online (Sandbox Code Playgroud)
你可能还有另一个问题.请注意,所有变量的生命周期都是脚本的当前运行.它们不会连续存在.为此,您需要使用某种持久性,如会话,cookie,文件系统,数据库.
如需更多帮助,请发布完整代码.
我对你的问题的措辞感到有点困惑.当你说"我必须在两个不同的文件中运行"时.你的意思是说你有"两个"功能吗?
如果你有两个函数都试图使用$ array变量,你需要调用global $array;这两个函数.
这样做的原因global是有点误导.所有它真正做的是将一个成员的引用分配给$_GLOBALS本地作用域中与$ _GLOBALS索引同名的变量.换句话说,如果你这样做:
global $variable;
Run Code Online (Sandbox Code Playgroud)
它与说这个基本上是一回事:
$variable =& $_GLOBALS['variable']; (assign by reference)
Run Code Online (Sandbox Code Playgroud)
实际变量$variable仍然在功能级别作用域,它恰好具有对全局变量的引用.
这意味着如果你没有global $variable在每个函数中定义,你只需要在该函数的范围内创建一个全新的变量.当函数结束时,变量未设置,并且函数内对其进行的任何更改都将丢失.
尽管如此,全局变量仍然是一个坏主意.如果你只是维护一个局部变量,并在需要时将它作为参数传递给其他函数,那就更清楚了.
| 归档时间: |
|
| 查看次数: |
89896 次 |
| 最近记录: |