Php 如何在同一类中将变量从一个方法传递到另一个方法?

Php 如何在同一类中将变量从一个方法传递到另一个方法?,php,class,methods,Php,Class,Methods,这是我的密码: class something { public function one() { $choices = array( 'something' = array( 'name' => 'test'; ), 'something_two' = array( 'name' => 'test_one';

这是我的密码:

class something {
    public function one() {
        $choices = array(
            'something' = array(
                'name' => 'test';
            ),
            'something_two' = array(
                'name' => 'test_one';
            ),
        );
    }

    public function two() {
        ?>
        <select>
            <?php
            foreach ($this->function_one() as $choice) {
                echo '<option value="'.$choice['name'].'">'.$choice['name'].'</option>';
            }
            ?>
        </select>
        <?php
    }
}
分类{
公共职能一{
$choices=数组(
'something'=数组(
'名称'=>'测试';
),
'something_two'=数组(
'name'=>'test_one';
),
);
}
公共职能二{
?>

我没有测试过这个,但是我已经纠正了在代码中看到的所有错误,试试这个

您的代码没有函数1返回任何内容。foreach循环也以不同方式调用该函数,我已删除workd“function”,并将其替换为
$this->one()

分类{
公共职能一{
$choices=数组(
'something'=数组(
'名称'=>'测试';
),
'something_two'=数组(
'name'=>'test_one';
),
);
返回$choices;
}
公共职能二{
?>

首先,有几个要点:

  • 您的数组声明有多个语法错误(
    =
    =>
    并删除分号)
  • 生成选择选项时,如果值属性与文本值相同,则无需写入该属性
现在我将提供两个使用不同技术的工作代码块

代码1:()

分类{
公共职能一{
$choices=数组(
'something'=>数组(
“名称”=>“测试”
),
'something_two'=>数组(
'name'=>'test_one'
)
);
返回$choices;
}
公共职能二{
回声“;
echo“”,内爆(“,数组_列($this->one(),'name')),”;
回声“;
}
}
$foo=新事物();
$foo->two();
代码2:()

分类{
public$choices=array();
公共函数构造(){
$this->choices=array(
'something'=>数组(
“名称”=>“测试”
),
'something_two'=>数组(
'name'=>'test_one'
)
);
}
公共职能二{
回声“;
echo“”,内爆(“,数组_列($this->choices,'name'),”;
回声“;
}
}
$foo=新事物();
$foo->two();

无论是从函数
two()
显式调用
one()
,还是使用构造函数在类中声明变量(属性)(通过对象
$this
)将取决于您的项目要求。我将避免从php手册中写出大量的引用;我建议您阅读一些关于类和方法的基本教程。

哦,我好像忘了返回$choices。谢谢您的帮助
class something {

public function one(){
   $choices = array(
     'something' = array(
       'name' => 'test';
     ),
     'something_two' = array(
       'name' => 'test_one';
     ),
   );
   return $choices;
}

public function two(){
?>
<select>
  <?php
  foreach ($this->one() as $choice ){
    echo '<option value="'.$choice['name'].'">'.$choice['name'].'</option>';
  }
  ?>
</select>
<?php
}    

}
class something {
    public function one() {
        $choices = array(
            'something' => array(
                'name' => 'test'
            ),
            'something_two' => array(
                'name' => 'test_one'
            )
        );
        return $choices;
    }

    public function two() {
        echo "<select>";
            echo "<option>" , implode("</option><option>", array_column($this->one(), 'name')) , "</option>";
        echo "</select>";
    }
}

$foo = new something();
$foo->two();
class something {
    public $choices = array();
    public function __construct() {
        $this->choices = array(
            'something' => array(
                'name' => 'test'
            ),
            'something_two' => array(
                'name' => 'test_one'
            )
        );
    }

    public function two() {
        echo "<select>";
            echo "<option>" , implode("</option><option>", array_column($this->choices, 'name')) , "</option>";
        echo "</select>";
    }
}

$foo = new something();
$foo->two();