PHP - 在类外使用数组?

时间:2012-08-03 01:50:07

标签: php arrays class function

我想在它的课外使用一个数组,我不太清楚如何做到这一点。

班级。

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还不太熟悉。

6 个答案:

答案 0 :(得分:1)

我建议您使用getters and setters来访问类中的值。这样做的另一个好处是它更容易在类中添加新功能,并且仍然可以从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!';
}

答案 1 :(得分:0)

制作公共财产

class Classname {     public $ 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;

答案 2 :(得分: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;
}

答案 3 :(得分:0)

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

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

不要在循环内返回。

答案 4 :(得分: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仅仅是一个临时值,而不是该类的一部分。

答案 5 :(得分:-1)

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

$ obj = new Classname; // $ obj现在是你的实例变量

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