【问题标题】:Using a var in my index outside a class PHP [closed]在 PHP 类之外的索引中使用 var [关闭]
【发布时间】:2013-02-09 18:31:07
【问题描述】:

我如何在课堂外访问 $pos 变量?所以我可以在我的索引中使用它,比如:echo $pos 我也在我的索引中包含了这个类。

public function CheckProfile(){

    $get = $this->db->query("SELECT positive, posts FROM users WHERE user='". $_SESSION['user'] ."'");

    while($row = $get->fetch(PDO::FETCH_ASSOC))
        {
            return $pos = $row['post'];
        }

    }

【问题讨论】:

  • 在 while 循环中使用 return 不会做你认为它会做的任何事情。你到底想用这段代码完成什么?
  • 您可以使用方法的返回值。但可能您正在访问错误的结果列;不应该是posts 而不是post
  • 您希望只有一行还是多行? while 循环中的 return 没有多大意义 - 这样,while 循环将只运行一次,如果有的话......
  • 这些都是人的问题。没有类,只有一个函数。 while 循环将在第一个结果后终止并返回。如果您希望所有行都使用 yield 或收集结果数组中的行并返回它。如果你想要它,只需用 print_r() 回显循环中的行
  • 每次你的代码处理while循环时,你总是覆盖$pos

标签: php class include var


【解决方案1】:

正如每个人都告诉你的那样,你的代码中有很多错误的地方。您应该学习如何更好地使用类和对象。无论如何,这是开始的:

假设你有一个类,让我们定义一个公共方法:

public function CheckProfile($user) {

    $ret = false;

    $stmt = $this->db->prepare("SELECT positive, posts FROM users WHERE user = :user");
    $stmt->bindParam(':user', $user, PDO::PARAM_STR);

    if ($stmt->execute())   {
        $ret = $stmt->fetchAll(PDO::FETCH_ASSOC);
    }

    return $ret;
}


然后,从你的 php 文件中,像这样使用它:

$UserData = $YourClassInstance->CheckProfile($_SESSION['user']);
if ($UserData === false) {
    echo 'Something went wrong...';
} else {
    print_r($UserData);
}

从这里开始,尝试完成你真正需要的。

【讨论】:

    猜你喜欢
    • 2014-07-15
    • 2016-10-07
    • 2010-12-28
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多