2012-08-12 50 views
1

您好我有問題的理解下面的代碼:

foreach ($_POST as $field=>$value) { 
    $this->ipn_data["$field"] = $value; 
    $post_string .= $field.'='.urlencode(stripslashes($value)).'&'; 
} 

是什麼$this->ipn_data["$field"] = $value辦?我需要一些例子來理解這一點。

+0

呃,什麼是'paypal'代碼?你的意思是'php'? – Annabelle 2012-08-12 20:36:06

+2

代碼將一些數據從表單中發送到它,將其填充到對象屬性中,並將其附加到查詢字符串中。這是質量差的代碼。 ''「$ field」]'是貨物編程,並且查詢字符串可以通過其他方法更高效地生成。 – 2012-08-12 20:36:13

+0

@RiaD這是MarcB所指的[貨運邪教](http://en.wikipedia.org/wiki/Cargo_cult_programming)位。 – 2012-08-12 20:40:43

回答

2

下面的行:

$this->ipn_data["$field"] = $value; 

需要在上下文中理解。 $ this關鍵字引用代碼執行的當前對象。

例如,考慮這樣的:

<?php 

class Car { 
    private $make = "Toyota"; 
    private $model = "Corolla"; 
    public function getDescription() { 
     return $this->make . " " . $this->model; 
    } 
} 

?> 

在你的情況下,這 - $> ipn_data是類的一個成員,並且是一個數組。 $字段被設置爲數組中的鍵,$ value被分配給ipn_data數組中的新鍵。