PHP определить глобальные переменные для функций?

Я хочу создать массив, который определен в моем коде function.php, поэтому мне не нужно передавать массив через свой дырочный код. Но это не сработает …

Это пример моего function.php:

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

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

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

Но это не работает … Как я могу это исправить, чтобы каждая функция имела доступ к массиву?

Привет

0

Решение

Я предлагаю вам хранить ваш массив глобально, используя $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();
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

просто удали $this

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

function foo(){
echo titleArray;
}

function boo(){
array_push(titleArray, "Hello");
}

обратите внимание, что значения массива разрешены после версии php 7.0

1

Как правило, мы используем define чтобы сделать постоянное значение, которое никогда не обновляется, используйте вместо этого класс

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

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

Функция define () определяет константу. Константы очень похожи на переменные, за исключением следующих различий: Значение константы нельзя изменить после ее установки.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector