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

クラスから値にアクセスするには、ゲッターとセッターを使用することをお勧めします。これには、クラス内に新しい機能を簡単に追加し、ゲッターから同じものを取得できるという追加の利点があります。

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

公共の財産を作る

クラス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;
于 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
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 に答える