Переменная не работает в функции PHP, даже если переменная глобальная

Я пытаюсь определить переменную, а затем вызываю ее в своей функции, а затем вызываю функцию в другом файле. Итак, переменные вне функции работают правильно, но когда я вызываю их в функции, они не работают. Вот код.

$info = new ServerInfo($server->GetServerData('IPAdress'));
$id = $server->GetServerData('ID');
$sshhost = $server->GetServerData('SSHHOST');
$sshport = $server->GetServerData('SSHPORT');
$sshuser = $server->GetServerData('SSHUSER');
$sshpw = base64_decode(base64_decode($server->GetServerData('SSHPW')));
$port = $server->GetServerData('PORT');

/* Start Server Function */
function start_server($sshhost, $sshport, $sshuser, $sshpw){

global $sshhost;
global $sshport;
global $sshuser;
global $sshpw;
global $id;
global $port;

if (!function_exists("ssh2_connect")) return "SSH2 PHP extenzija nije instalirana";

if (!($con = ssh2_connect($sshhost, $sshport))){
    return "Ne mogu se spojiti na server";
} else {

    if (!ssh2_auth_password($con, $sshuser, $sshpw)) {
        return "Netačni podatci za prijavu";
    } else {

        $stream = ssh2_shell($con, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS);
        fwrite( $stream, "cd /home/cs && screen -A -m -S srv".$id. " ./hlds_run -console -game cstrike +port " .$port. " +map de_dust2 +maxplayers 32 -pingboost 1".PHP_EOL);
        sleep(1);
        echo "Server Startovan";

        return TRUE;

    }
}   
}

Вы передаете их как аргументы и, объявляя их глобальными. Сделайте то или другое. (Желательно в качестве аргументов.)

Alex Howansky 29.08.2018 18:35

Возможно, это связано с тем, что у вас есть параметры функции, названные так же, как переменные. По возможности постарайтесь не использовать глобальные переменные.

Phiter 29.08.2018 18:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
70
1

Ответы 1

Вы можете объявить их с помощью $GLOBALS['variablename'], а затем по-прежнему использовать $variablename в другой функции. ссылка: https://www.w3schools.com/php/php_superglobals.aspКак объявить глобальную переменную в php?

function start_server($sshhost, $sshport, $sshuser, $sshpw){

$GLOBALS['sshhost'] = $sshhost;
$GLOBALS['sshport'] = $sshport;
$GLOBALS['sshuser'] = $sshuser;
$GLOBALS['sshpw'] = $sshpw;

/* do more stuff */

Другие вопросы по теме