我想在它的课外使用一个数组,我不太清楚如何做到这一点。
班级。
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还不太熟悉。
答案 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()