#php
#php
Вопрос:
посмотрите приведенный ниже код:
$myvar = array();
first();
function first()
{
global $myvar;
$array(apple, banana, orange);
}
second();
function second()
{
global $myvar;
print_r($array);
}
затем на выходе вторая функция не отображает массив … =/ я не понимаю, как функция получает массив переменных из другой функции…
Комментарии:
1. Что вы хотите сделать? $array в первой функции не имеет смысла — <code>$array(…);</code> фактически вызывает функцию по имени, которое находится в переменной $array — но переменная не инициализирована.
Ответ №1:
Две вещи
$myvar
нигде не используется в ваших функциях;
вы должны узнать, как добавить элемент в объявленный массив.
function first()
{
global $myvar;
$myvar=array('apple','banana','orange');
}
Комментарии:
1. тогда что, если использовать с $myvar = explode(«;», $line)?
2. @user: Что
$line
откуда это взялось?3. я только привожу пример… $ line = «яблоко; банан; апельсин;»; потому что у меня проблемы с чтением и записью файла php.. я вижу, что функция не может прочитать массив из глобальной переменной.
Ответ №2:
Вы нигде не устанавливаете переменную $array
.
Ответ №3:
Не используйте глобальные переменные только потому, что вы ленивы. Вместо этого используйте возвращаемые значения и параметры функции
function first () { return array('apple','banana', 'orange'); }
function second ($param) { print_r($param); }
$fruit = first();
second($fruit);
Ответ №4:
Вы запрашиваете переменную $myvar
в global $myvar;
строке, но затем пытаетесь использовать переменную с именем $array
.
Попробуйте использовать строки:
$myvar = array('apple','banana','orange');
и
print_r($myvar);
Ответ №5:
$array
не входит в область действия функции 2.
Ответ №6:
я подбираю правильный код, который выглядит следующим образом:
$myvar = array();
first();
second();
function first(){
global $myvar;
array_push($myvar, 'apple', 'banana', 'orange');
}
function second(){
global $myvar;
print_r($myvar);
}
array_push добавляет новые элементы в массив.
Ответ №7:
Попробуйте это с использованием класса вместо двух функций с одной глобальной переменной:
class functions {
$myvar = array();
function first(){
$this->myvar = array('apple', 'banana', 'orange');
}
function second(){
print_r($this->myvar);
}
}
$fn = new functions();
$fn->first();
$fn->second();
Не стоит использовать глобальные переменные (как вы сделали в своем вопросе).
Комментарии:
1. … сохраняющаяся грамматика доски объявлений и предоставление нерелевантных советов вместо объяснения, полезного для OP.
2. Используйте правильную заглавную букву. Мем «Глупые глобалы — зло» не слишком полезен в мелкой однострочной версии. И перезапись двух простых функций в объект не объясняет, на что наткнулся OP.
3. Правила нет. Но разрешено отклонять ответы по любой причине. И ваш всегда выглядит так, как будто вы ошибочно принимаете SO за доску объявлений.
4. Я готов не обращать внимания на ваш некачественный стиль написания (отрицательный отзыв глуп, поскольку вы все равно не хотите его менять). Но, как я уже говорил вам, совет все еще бесполезен. Также на самом деле нет смысла постоянно запрашивать о недостатках, когда вы все равно не слушаете.
5. @markus Я должен согласиться с Нилом в этом вопросе. Полное изменение сообщений других людей и «вкладывание слов в их уста» — плохая практика, ИМО, и ее следует избегать.