PHP定义函数的全局变量?

时间:2017-02-19 12:02:54

标签: php

我想创建一个在我的function.php代码中定义的数组,所以我不必通过我的漏洞代码传输数组。但它不会起作用......

这是我的function.php的一个例子:

<?php
define("titleArray", array());

function foo(){
echo $this->titleArray;
}

function boo(){
array_push($this->titleArray, "Hello");
}

但它不起作用......如何解决这个问题,以便每个函数都可以访问数组?

问候

4 个答案:

答案 0 :(得分:2)

我建议您使用$GLOBALS全局存储数组,而不是使用echo打印数组,而是使用print_r方法。

<?php
  $GLOBALS["titleArray"]  = array('world');

  function foo(){
    print_r($GLOBALS["titleArray"]);
}

function boo(){
  array_push($GLOBALS["titleArray"], "Hello");

  print_r($GLOBALS["titleArray"]);
}

foo();
boo();

答案 1 :(得分:2)

有两种方法可以做到:

  • 在每个功能中使用global
  • 在函数
  • 之外声明$GLOBALS[]

$titleArray = [];
// $GLOBALS['titleArray'] = [];

function foo(){
    global $titleArray;
    print_r($titleArray);
    // print_r($GLOBALS['titleArray']);
}

function boo(){
    global $titleArray;
    array_push($this->titleArray, "Hello");
    // array_push($GLOBALS['titleArray'], "Hello");
}

答案 2 :(得分:1)

只需删除 jquery.ajax(settings).done( (response) => { let items = response; items.users_login.records.forEach( (el) => { var datacompare = el[1]; var passcompare = el[2]; }); // continue my coding });

即可
<a Name><v index="1">Lawrence</v>
<a Surname><v index="1">Karlton</v>
<a Name><v index="2">Ana</v>
<a Surname><v index="2">Karlton</v>.
<a Avarage><v>75</v>

请注意,在php 7.0版本之后允许使用数组值

答案 3 :(得分:1)

通常我们使用define来创建永不更新的常量值,而不是使用类

 <?php
   class abc {
   $titleArray = [];
   function foo(){
     echo $this->titleArray;
   }

   function boo(){
     array_push($this->titleArray, "Hello");
   }
 }

define()函数定义一个常量。常量与变量非常相似,但以下差异除外:常量值在设置后无法更改。