1

プロパティを設定して別の関数で使用しようとしています。

私は持っている

while($texts->employees()){
      $employee = $employees->get();

      switch($employee->getInfoType()){

        case 'email':
            $this->buildemail($employee);
          break;
        case 'Name':
            $this->buildName($employee);
          break;
        case 'Numbers':
            $this->buildNumbers($employee);
          break;
     }

function buildEmail($employee){
    $this->email=$employee->getEmail();  //get the email.
}

function buildName($employee){
    $this->Name=$this->getName(); //get the name
    $this->employeeInfo=$this->email.$this->name;   //combine the email and numbers.

    //$this->email is '' becasue it's only defined in buildEmail(). 
}

function buildNumbers($employee){
     $this->numbers=$this->getNumbers();
}

メソッドで定義されて$this->emailいるため、buildName メソッドを取得できないようです。各メソッドには非常に多くのコードがあるため、スイッチを使用する必要があります。とにかくこれを行うことはありますか?this->emailbuildemail

4

2 に答える 2

0

次のようにできませんか?

function buildName($employee){
    $this->Name=$this->getName(); //get the name

    if(null == $this->email)
        $this->buildEmail($employee);

    $this->employeeInfo= $this->email.$this->name;   //combine the email and numbers.

    //$this->email is '' becasue it's only defined in buildEmail(). 
}

各従業員は電子メールを持っている必要があると思いますが、それは正しいですか?

于 2013-02-07T19:06:33.223 に答える
0

メソッドが にあることに依存するのではなく、メソッド$employee->getEmail()を呼び出してみませんか?buildName$email

また:

    case 'Name':
        $this->buildName($employee);
    case 'Numbers':
        $this->buildNumbers($employee);
      break;

buildName「名前」を返す場合buildNumbersは両方とも実行されます。$employee->getInfoType()あなたはbreak;2つの間に欠けています。

于 2013-02-07T18:51:48.257 に答える