2011-10-31 52 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