无法调用静态变量

时间:2017-05-20 08:56:03

标签: php

我是PHP的新手,有一个简单的项目,我做Java。 在我的简单项目中,我有一些html个文件和一些Php个文件。 我在Php网页中通过SSH连接到设备,之后我将运行一些命令并返回SSH返回的数据。 任何方式,所以我设计了一个Html文件用于登录并使用我的php,这是我的Php代码:

          <?php                
    class Connection {
    public static $ip; // I even made static this variable to test if I can access Static variable from other 
    public $username;
    public $password;
    public static $ssh;


    public  function sshConnection() {
        include ('./view/login.html'); // The html page contain variables 
        include('Net/SSH2.php'); // I use phpseclib to connect via SSH

        if(isset($_POST['lgin'], $_POST['ip'], $_POST['username'], $_POST['password'])) { // Login button in html file
            $this->ip = $_POST['ip']; // input type to get ip in html file
            $this->username = $_POST['username']; // input type to get username in html file
            $this->password = $_POST['password']; // input type to get password in html file
            $this->ssh = new Net_SSH2($this->ip);
            if (!$this->ssh->login($this->username, $this->password)) {
                print('Login faild');
            } else {

                header("Location: http://localhost/wireless/configwireless.php"); // This redirect to next page that I should display some Commands
            }
        }
    }
}
    $connection=new Connection();
    $connection->sshConnection();       
        ?>

我需要在下一页中使用$ ssh变量,以便我可以通过此连接运行命令并进行会话。 我用Google搜索并发现我可以通过以下代码访问静态变量:

classname::$variableName;

我甚至让我的$ ip变量静态来测试我是否可以访问它,但没有机会, 这是我的configwireless.php代码:

<?php
   echo Connection::$ip; // Does not display the input ip variable.

?>

但它不显示$ip变量。 我在哪里做错了?

2 个答案:

答案 0 :(得分:0)

对于课程中的分配静态属性,应使用 自我 静态 关键字。而不是

$this->ip = $_POST['ip'];

使用此

static::$ip = $_POST['ip'];

self::$ip = $_POST['ip'];

答案 1 :(得分:0)

正如我亲爱的朋友@Mohammad所说,header("Location: http://localhost/wireless/configwireless.php");变量将丢失。 我在header("Location: http://localhost/wireless/configwireless.php");之前做了这个:

            session_start();
            $_SESSION['ip'] = $this->ip; 

在下一页中我添加了:

    session_start();
    $x=$_SESSION['ip'];
    echo $x;