• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Переменная и функция

  • Автор темы slavon-x86
  • Дата начала
S

slavon-x86

Код:
 $error;

function c_string($string)
{
$error = $string . 'bbb';
};

check_string('aaa');
Создаётся переменная $error, потом её надо обработать в функции c_string ! Но внутри функции не видно переменную ! Как это сделать нормально ?
 
A

Artexoid

<!--QuoteBegin-slavon-x86 @ Сегодня+ 18:44 -->
<span class="vbquote">(slavon-x86 @ Сегодня @ 18:44 )</span><!--QuoteEBegin-->
Код:
 $error;
function c_string($string)
{
$error = $string . 'bbb';
};
check_string('aaa');
Создаётся переменная $error, потом её надо обработать в функции c_string ! Но внутри функции не видно переменную ! Как это сделать нормально ?[/quote]
Не видна переменная $error я так понял? Нужно сделать так:
Код:
 $error;
function c_string($string)
{
global $error; 
$error = $string . 'bbb';
};
check_string('aaa');
Ну или так:
Код:
 $error;
function c_string($string,&$error)
{
global $error; 
$error = $string . 'bbb';
};
check_string('aaa');

В первом случае global указывает на то что $error у нас объявлена за пределами ф-ции, во 2-м $error передаётся по ссылке...
 
G

GOsha

Для: slavon-x86
Тебе правильно ответили. Только книжками не стоит пренебрегать.
Там же почти на первой странице написано про области видимости функций, и как решать эти вопросы.
 
S

slavon-x86

Спасибо, работает ! Я конечно же читал книгу, но не правельно понял её толкование ! Я думал что переменная должна обьявляться за пределами функции как глобальная, а оказалось немного не так ! :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!