Как получить доступ к переменной вне оператора if

В следующем коде, как я могу получить доступ к $ uname вне этих операторов?

$uname = '';
if ($row['ulogo'] == '1'){ $ulogo = '../images/varsity logos/witsLogo.jpg'; $uname = 'Wits'; echo $uname; } else if ($row['ulogo'] == '2'){ $ulogo = '../images/varsity logos/UJ.png'; $uname = 'University of Johannessburg'; echo $uname; } echo $uname;

Объясните свой downvote, если он есть.

6 ответов

Инициализировать $ uname вне блока if:

$uname = '';
if ($row['ulogo'] == '1'){ $ulogo = '../images/varsity logos/witsLogo.jpg'; $uname = 'Wits'; echo $uname; } else if ($row['ulogo'] == '2'){ $ulogo = '../images/varsity logos/UJ.png'; $uname = 'University of Johannessburg'; echo $uname;
}
echo $uname;


Вы получите уведомление неопределенных переменных $ulogo и $uname если $row['ulogo'] не 1 или 2.

Попробуй это:

if ($row['ulogo'] == '1')
{ $ulogo = '../images/varsity logos/witsLogo.jpg'; $uname = 'Wits';
}
elseif ($row['ulogo'] == '2')
{ $ulogo = '../images/varsity logos/UJ.png'; $uname = 'University of Johannessburg';
}
else
{ $ulogo = '../images/varsity logos/noimage.png'; $uname = NULL;
}
echo $ulogo;
echo $uname;

Или

$logo = '../images/varsity logos/noimage.png';
$uname = NULL;
if ($row['ulogo'] == '1')
{ $ulogo = '../images/varsity logos/witsLogo.jpg'; $uname = 'Wits';
}
elseif ($row['ulogo'] == '2')
{ $ulogo = '../images/varsity logos/UJ.png'; $uname = 'University of Johannessburg';
}
echo $ulogo;
echo $uname;


Я не парень PHP, так что исправьте меня, если я ошибаюсь... но чтобы получить доступ к $ uname, за пределами инструкции if вы должны объявить ее вне оператора if, поэтому она находится в области вне инструкции if. Прямо сейчас $ uname находится только в области видимости внутри оператора if, как только вы покидаете оператор if, переменная больше не существует.


Сначала вы определяете глобальную переменную

$ uname = ''; if ($ row ['ulogo'] == '1') {

$ ulogo = '../images/varsity logos/witsLogo.jpg';

$ uname = 'Wits';

echo $ uname;

} else if ($ row ['ulogo'] == '2') {

$ulogo = '../images/varsity logos/UJ.png'; </pre> <p> $ uname = 'Университет Йоханнесбурга';

echo $ uname; }

echo $ uname;


Вышеуказанный ответ правильный, я просто подумал, что добавлю еще way-

Определите оператор if внутри функции, которая возвращает, например,

function define_username() { if ($row['ulogo'] == '1'){ $ulogo = '../images/varsity logos/witsLogo.jpg'; $uname = 'Wits'; } else if ($row['ulogo'] == '2'){ $ulogo = '../images/varsity logos/UJ.png'; $uname = 'University of Johannessburg'; }; return $uname;
};
echo define_username();


Ваш код работает. Я приведу пример, который соответствует

$row = 1; //temp variable
if ($row == '1'){ $uname = 'Wits';
} else if ($row == '2'){ $uname = 'University of Johannessburg';
}
echo $uname;

licensed under cc by-sa 3.0 with attribution.