2017-10-15 13 views
0

連鎖の練習をしており、メソッドをチェーンするとメールメソッドが表示されません。私はここに何かを逃していますかPHP Mail method chaining

<?php 

    class User { 
     public $firstName; 
     public $lastName; 

     public function sayHello(){ 
     echo 'Hello ' . $this->firstName . ' ' . $this->lastName; 
     return $this; 
     } 

     public function register(){ 
     echo 'Registered ' . $this->firstName; 
     return $this; 
     } 

     public function mail(){ 
     return 'Emailed'; 
     } 


    } 


    $user1 = new User(); 
    $user1->firstName = 'John'; 
    $user1->lastName = 'Doe'; 
    $user1->sayHello()->register()->mail(); 


    ?> 
+2

https://3v4l.org/2iG9p動作します。 –

答えて

0

メールメソッドから値を返信しますが、エコーしません。 mail()にテキストをINGの

var_dump($user1->sayHello()->register()->mail()); 
1

あなたですreturn試してみてください。

あなたがメソッドを呼び出すときは、どちらかは、それをエコーすることができ

echo $user1->sayHello()->register()->mail(); 

Demo

あなたは、例えば、変数に結果を保存し、後で使用するようになる。この方法:

$result = $user1->sayHello()->register()->mail(); 
// do some work 
echo "The result is: ".$result; 

または、メソッド自体にエコー:

public function mail(){ 
    echo 'Emailed'; 
} 

Demo

+0

ありがとうございました...これは問題でした... – horcrux88