2013-11-27 5 views
0

Я новичок в php, и я в процессе взломал через некоторый код moodle для прототипа.Правильно ли я использую эти глобальные переменные?

Anyhows У меня есть данные Id, переданные из file1.php в файл2.php, для которых Im использует глобальные переменные. Значения intialized в файле2 и мне нужны для использования в файле1. Вот как я это сделать

file1.php

<?php// top of file 1 

global $content; // discussion content // line 3 

file2.php

global $content;// line 3379 

    $content=$post->subject; 

Назад в file1.php

echo 'global scope'.$content; // this is always empty// line 168 

Я пропускаю что-то здесь? Прикрепленные файлы file1.php и file2.php

+1

Нет, это не так. Каждый скрипт PHP является собственным небольшим юниверсом, а переменные, заданные в одном, будут ** NOT ** быть видимыми другому при следующем запросе. Вам необходимо использовать сеансы или другие способы хранения данных. –

+2

Нет, вы не используете ключевое слово 'global' правильно. Вероятно, вы хотели сделать '// global'. – PeeHaa

+2

lol PeeHaa! Я читал, что в качестве комментария к глобальной причине это прогорклый смертельный ловушка. Я не знаю, содержит ли OP файлы или что. Но я согласен с тобой. –

ответ

5

используется глобальная, чтобы получить глобальной переменной

//file 1 
$a = "im a global variable"; 

function foo(){ 
    global $a; 
    echo $a; 
} 

//file 2 
require "file1.php"; 

function foo2(){ 
    global $a; 
    echo $a; 
} 
+0

спасибо за ответ. И я отмечаю это как принятое, потому что оно работает в общем случае. Тем не менее, я не думаю, что moodle позволяет определить пользовательские глобальные переменные :( – KodeSeeker

0

просто делюсь мысль,

Предположим, что в file1, у вас есть $ содержание = "MyId";

и file2, если включить ("file1.php"), вы можете получить доступ к тем самым,

global $content; 
var_dump($content) will output string 'myId' (length=4) 
+0

почему в нижнем регистре? – Benedictus

Смежные вопросы