2011-10-31 51 views
0
<? 
class Contact { 

    //protected $message = "Hello World"; 

    function __construct($message){ 
     echo $this ->message; 
    } 

    function getName() { 

    } 

} 

$con = new Contact("Hello World");  

?> 

<form method="post" action="Contact.php"> 
  1. 當我編譯這個類時,它不打印「Hello World」爲什麼?
  2. 如何在我的表單操作中調用getName()函數。是正確的方式。

訪問課程中幾個問題?

<form method="post" action={$con->getName()}> 

回答

3

A)你不編譯PHP

B)$message不是一個實例變量,它的參數:

function __construct($message){ 
    echo $message; 
} 

你注入的方式你的PHP方法調用HTML:

<form method="post" action="<?php echo $con->getName(); ?>"> 

Your comment //protected $message = "Hello World"是在正確的方向。這樣的事情將是理想的:

class Contact { 

    protected $message = "Hello World"; 

    function __construct($message = null){ 
     $this->setMessage($message); 
    } 

    public function getMessage(){ 
     return $this->message; 
    } 

    public function setMessage($message = null){ 
     if($message !== null){ 
      $this->message = $message; 
     } 
    } 
} 

使用像這樣:

$con = new Contact(); 
$con->getMessage(); // "Hello World; 
$con->setMessage("Goodbye World"); 
$con->getMessage(); // "Goodbye World" 

$con2 = new Contact("Goodbye World"); 
$con2->getMessage(); // "Goodbye World" 
+0

您可以用街舞編譯爲增加的速度,如果你想。 – BRampersad

+0

Hiphop不是一個編譯器,它可以將代碼轉換爲C++風格,因此PHP解釋器不需要太多解釋。 – AlienWebguy