0

我想在它的类之外使用一个数组,但我不太确定如何做到这一点。

班上。

class Classname{
public function Functionname(){
$sql = 'SELECT * FROM...';
$result = mysql_query($sql);

$sgArray[] = array();
while($row = mysql_fetch_assoc($result)){
   return $sgArray[] = $row['a'];
}

我需要数组的代码(在类外)。

$var = 'somevalue';
$Array = ??? 
if(in_array($var, $Array)) {
    //enter code here
}

希望有人可以帮助我,因为我对 OOP 还不太熟悉。

4

6 回答 6

1

我建议您使用getter 和 setter来访问类中的值。这有一个额外的好处,那就是更容易在类中添加新功能,并且仍然可以从 getter 中得到相同的东西。

class Classname
{
    private $myArray = array();

    public function getMyArray()
    {
        return $this->myarray();
    }

    public function Functionname()
    {
        $sql = 'mysql query';
        $result = mysql_query($sql);    

        while($row = mysql_fetch_assoc($result))
        {
           $this->myArray[] = $row;
        }

        return $this;

    }
}

以后可以打电话

$myClass = new Classname();   

if( in_array('foo', $myClass->Functionname()->getMyArray() ))
{
    echo 'BAR!';
}
于 2012-08-03T02:03:19.133 回答
0

建立公共财产

类 类名 { 公共 $array;

public function Functionname(){
$sql = 'mysql query';
$result = mysql_query($sql);

$sgArray[] = array();
while($row = mysql_fetch_assoc($result)){
$this->array[] = $row;
}
return $this->array;
于 2012-08-03T01:52:59.143 回答
0

既然functionname是公开的,就让它(或类似的方法)返回你想要的数据......

class Classname{
    public function GetResultSet(){
        $sql = 'mysql query';
        return mysql_fetch_assoc(mysql_query($sql));
    }
}

然后在课外...

$ResultSet = $Classname->GetResultSet();

while($row = $ResultSet){
   return $Array[] = $row;
}
于 2012-08-03T01:54:18.350 回答
0

为您的类创建一个对象并调用该函数。

Classname $obj;
$Array = $obj->functionname();

并且不要在循环内返回。

于 2012-08-03T01:55:50.983 回答
0
class ClassName {
    public function FunctionName() {
        $sql = "SELECT * FROM ...";
        $result = mysql_query($sql);

        $sgArray = array();

        while($row = mysql_fetch_assoc($result)) {
            $sgArray[] = $row;
        }

        return $sgArray;
    }
}

$obj = new ClassName();
$var = "some value ";
$arr = $obj->FunctionName();

if (in_array($var, $arr)) {
    // do stuff
}

编辑:这假设$sgArray只是一个临时值,而不是类的一部分。

于 2012-08-03T02:03:23.080 回答
-1

首先,您需要创建一个实例变量:

$obj = 新的类名();//$obj 现在是你的实例变量

//现在使用您创建的实例变量从其他类获取方法:
$array = $obj->Functionname();

于 2016-01-14T03:47:51.547 回答