Php 意外的T_捕获,应为T_函数

Php 意外的T_捕获,应为T_函数,php,error-handling,Php,Error Handling,今天,在尝试编写这个用户类时,我在下面突出显示的行中遇到了上面的错误,我想知道你们对此有何看法 class User { public $username; public $password; public $user_info; public $connection; function __construct($username) { $connection = new Database(); try { $user_info = $connection

今天,在尝试编写这个用户类时,我在下面突出显示的行中遇到了上面的错误,我想知道你们对此有何看法

class User {
  public $username;
  public $password;
  public $user_info;
  public $connection;

  function __construct($username) {
   $connection = new Database();
   try {
   $user_info = $connection->query("SELECT * FROM `users` WHERE `username` = '$username'");
   if ($user_info == null) {
    throw new Exception("Could not find user details, please try again later!");
   }
   ***} catch (Exception $login) {***
    die($login->getMessage());
   }
   session_start();
   $_SESSION["dgs_tech"] = $user_info;
  }

  function update_info() {
   $user_info = $connection->query("SELECT * FROM `users` WHERE `username` = '$username'");
   if ($user_info == null) {
    throw new Exception("Could not find user details, please try again later!");
   }
   } catch (Exception $login) {
    die($login->getMessage());
   }
   $_SESSION{"dgs_tech"] = $user_info;
  }

  function return_info() {
   $text = "<p>"
   foreach($user_info as $name => $item) {
    $text += "<h1>$name:</h1>$item<br/>";
   }
   $text += "</p>";
   return $text;
  }
 }
类用户{
公共$username;
公共密码;
公共$user\u信息;
公共连接;
函数构造($username){
$connection=新数据库();
试一试{
$user\u info=$connection->query(“从`users`中选择*,其中`username`='$username');
如果($user\u info==null){
抛出新异常(“找不到用户详细信息,请稍后再试!”);
}
***}catch(异常$login){***
死亡($login->getMessage());
}
会话_start();
$_会话[“dgs_tech”]=$用户信息;
}
函数更新_info(){
$user\u info=$connection->query(“从`users`中选择*,其中`username`='$username');
如果($user\u info==null){
抛出新异常(“找不到用户详细信息,请稍后再试!”);
}
}catch(异常$login){
死亡($login->getMessage());
}
$_SESSION{“dgs_tech”]=$user_info;
}
函数返回_info(){
$text=“”
foreach($name=>$item形式的用户信息){
$text+=“$name:$item
”; } $text+=“

”; 返回$text; } }
我认为此错误即将执行函数更新\u info()
您没有“try{”已更正的代码:立即尝试:

class User
{
    public $username;
    public $password;
    public $user_info;
    public $connection;

    function __construct($username)
    {
        $connection = new Database();
        try
        {
            $user_info = $connection->query("SELECT * FROM `users` WHERE `username` = '$username'");
            if ($user_info == null)
            {
                throw new Exception("Could not find user details, please try again later!");
            }
        }
        catch (Exception $login)
        {
            die($login->getMessage());
        }
        session_start();
        $_SESSION["dgs_tech"] = $user_info;
    }

    function update_info()
    {
        try
        {
            $user_info = $connection->query("SELECT * FROM `users` WHERE `username` = '$username'");
            if ($user_info == null)
            {
                throw new Exception("Could not find user details, please try again later!");
            }
        }
        catch (Exception $login)
        {
            die($login->getMessage());
        }
        $_SESSION["dgs_tech"] = $user_info;
    }

    function return_info()
    {
        $text = "<p>"
        foreach($user_info as $name => $item)
        {
            $text += "<h1>$name:</h1>$item<br/>";
        }
        $text += "</p>";
        return $text;
    }
}
类用户
{
公共$username;
公共密码;
公共$user\u信息;
公共连接;
函数构造($username)
{
$connection=新数据库();
尝试
{
$user\u info=$connection->query(“从`users`中选择*,其中`username`='$username');
如果($user\u info==null)
{
抛出新异常(“找不到用户详细信息,请稍后再试!”);
}
}
catch(异常$login)
{
死亡($login->getMessage());
}
会话_start();
$_会话[“dgs_tech”]=$用户信息;
}
函数更新_info()
{
尝试
{
$user\u info=$connection->query(“从`users`中选择*,其中`username`='$username');
如果($user\u info==null)
{
抛出新异常(“找不到用户详细信息,请稍后再试!”);
}
}
catch(异常$login)
{
死亡($login->getMessage());
}
$_会话[“dgs_tech”]=$用户信息;
}
函数返回_info()
{
$text=“”
foreach($name=>$item形式的用户信息)
{
$text+=“$name:$item
”; } $text+=“

”; 返回$text; } }
它的问题是Try从一个函数开始,到另一个函数结束


你应该正确缩进你的代码。错误会自动清除。

你的构造函数荣誉{}没有正确关闭,你有一个函数外的代码。

你为什么要为他做这件事?:p我们应该发布问题的答案,这些问题将允许查找和修复,还没有准备好“我是为你们做的”;@Dariusz,他自己无法纠正,这就是为什么他在这里问这个问题。我认为我们可以通过清晰和详细的说明来帮助我们的编码同事。是的,但那样只能教方法:“我做不到,让别人为我做吧。”,并指出要查找的位置,强迫用户,告诉用户他犯了什么错误……你们想让每个人都只问侯恩“请帮我修一下吗?”;)@Dariusz,我更正了代码,同时说明了原因并给出了正确缩进的提示,这样他就不会重蹈覆辙。你还想从我这里得到什么?@shamittomar我什么都不想要,你的答案没有错,我只是很惊讶,你粘贴了准备就绪的代码,而不是仅仅(只)指出错误:)不多不少幸运的是,当我发布这篇文章时,我注意到缺少“try{”。我还修复了其他几个错误,但非常感谢:)