php - 变量在 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;
}
}
}
解决方案
您可以使用声明它们,$GLOBALS['variablename']
然后仍然使用$variablename
其他函数。ref:
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 */
推荐阅读
- sql - 如何进行查询以根据需要选择数据
- python - 将值关联到 .txt 文件中的变量 (Python)
- swift - 使用 alamofire 获取项目并快速将其传递给 tableview
- c++ - C ++链表中出现垃圾节点
- c# - 使用 .Net Compact/Windows CE 从线程中的数据设置标签文本
- java - 搜索 Java 数组,在第一个实例后停止
- stream - 返回 Stream trait 对象的 Future
- r - 如何通过 kable 和 kableExtra 在 Rmarkdown LaTex 中打印小于/大于符号?
- android - android - 日历视图,如何更改特定日期的颜色?
- python - 在不同的驱动器上导入多阵列 numpy 扩展模块失败