публичные переменные в переполнении стека

У меня есть эта функция:

function map(){
$address = mashhad; // Google HQ
$prepAddr = str_replace(' ','+',$address);
$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false');
$output= json_decode($geocode);
$latitude = $output->results[0]->geometry->location->lat;
$longitude = $output->results[0]->geometry->location->lng;
$ogt=owghat($month , $day , $longitude , $latitude  , 0 , 1 , 0);
}

и мне нужно использовать форму $ ogt в другой функции, возможно ли, что объявил ogt в качестве публичной переменной, и если это возможно, как я могу это сделать?

2

Решение

Вы можете установить его как глобальный в функции:

function map() {
//one method of defining globals in a function
$GLOBALS['ogt'] = owghat($moth, $day, $longitude, $latitude, 0, 1, 0);
// OR
//the other way of defining a global in a function
global $ogt;
$ogt = owghat($month, $day, $longitude, $latitude, 0, 1, 0);
}

НО это не тот способ, которым вы должны идти по этому поводу. Если нам нужна переменная из функции, мы просто возвращаем ее из функции:

function map() {
$ogt = owghat($month, $day, $longitude, $latitude, 0, 1, 0);
return $ogt;
}

$ogt = map(); //defined in global scope.
1

Другие решения

Если вы объявите $ogt вне этой функции, это будет глобальным для работы, которую вы делаете. Вы также можете вызвать функцию из map() с $ogt как часть звонка. Это действительно зависит от того, что вы делаете. Вы также можете просто объявить переменную как общедоступную, как в C #. Я бы порекомендовал это из руководства PHP:

http://php.net/manual/en/language.oop5.visibility.php

http://php.net/manual/en/language.variables.scope.php

2

вы можете объявить переменную $ ogt как глобальную переменную

Источник:

1: http://php.net/manual/en/language.variables.scope.php

2: http://php.net/manual/en/reserved.variables.globals.php

0
По вопросам рекламы [email protected]