【www.gdgbn.com--面向对象编程】

php数组{array}使用教程

现在,这冗长的设定每个属性使用一套方法-必须有一个更简单的方法。这就是关联数组结合我们构造派上用场。让我们创造我们的用户对象,并给它几个实例时性能

$attribs = array(
  "name"  => "Kirupa",
  "job"  => "Engineer",
  "school" => "MIT",
  "homeTown" => "Spanish Fort",
  "homeState" => "Alabama"
  );
$kirupa = new User( $attribs );

echo "Name: ".$kirupa->getName()."
";  // Kirupa
echo "Job: ".$kirupa->getJob()."
";  // Engineer
echo "School: ".$kirupa->getSchool()."
";  // MIT
echo "Home Town: ".$kirupa->getHomeTown()."
"; // Spanish Fort
echo "Home State: ".$kirupa->getHomeState()."
"; // Alabama

class User {
 private $name;
 private $job;
 private $school;
 private $homeTown;
 private $homeState;
 
 function __construct( $attribs ) {
  $this->name  = $attribs["name"];
  $this->job  = $attribs["job"];
  $this->school  = $attribs["school"];
  $this->homeTown  = $attribs["homeTown"];
  $this->homeState = $attribs["homeState"];
 }
 
 /* name methods */
 function setName( $val ) {
  $this->name = $val;
  return;
 }
 
 function getName() {
  return $this->name;
 }
 
 /* job methods */
 function setJob( $val ) {
  $this->job = $val;
  return;
 }
 
 function getJob() {
  return $this->job;
 }
 
 /* school methods */
 function setSchool( $val ) {
  $this->school = $val;
  return;
 }
 
 function getSchool() {
  return $this->school;
 }
 
 /* home town methods */
 function setHomeTown( $val ) {
  $this->homeTown = $val;
 }
 
 function getHomeTown() {
  return $this->homeTown;
 }
 
 /* home state methods */
 function setHomeState( $val ) {
  $this->homeState = $val;
 }
 
 function getHomeState() {
  return $this->homeState;
 }
}

我一直的一套方法,如果我们想要改变的属性,但现在的性能,建立了经由__construct前面。这就是说,我们通过我们的$ attribs数组对象的实例,这反过来又通过$ attribs的自动构造。优势利用关联数组为此目的,我们并不需要明确地规定所有的变量与方法。这是极其方便的时候将与MySQL PHP的数据,我们将尽快支付。但首先,我们需要学习一点方法的互动和对象分组。

法相互作用
在这一点上,我们的方法不互动。让我们添加一个小功能,例如,我们充分状态转换的名字给适当的缩写。

$attribs = array(
  "name"  => "Kirupa",
  "homeState" => "Alabama"
  );
$kirupa = new User( $attribs );

echo "Name: ".$kirupa->getName()."
";   // Kirupa
echo "Home State: ".$kirupa->getHomeState()."
";  // Alabama
echo "State Abbr.: ".$kirupa->getHomeStateAbbr()."
"; // AL

class User {
 private $name;
 private $homeState;
 
 function __construct( $attribs ) {
  $this->name  = $attribs["name"];
  $this->homeState = $attribs["homeState"];
 }
 
 /* name methods */
 function setName( $val ) {
  $this->name = $val;
  return;
 }
 
 function getName() {
  return $this->name;
 }
 
 /* home state methods */
 function setHomeState( $val ) {
  $this->homeState = $val;
 }
 
 function getHomeState() {
  return $this->homeState;
 }
 
 function getHomeStateAbbr() {
  $abbr = States::$ABBRS[$this->getHomeState()];
  if( $abbr ) {
   return $abbr;
  }
  else {
   return "Unknown";
  }
 }
}

class States {
 /* ideally this would be held in a database */
 static $ABBRS = array (
  "Alabama" => "AL",
  "Michigan" => "MI",
  "New York" => "NY"
  );
}

在这个例子中,我们充分利用国家的名字获得相应的缩写。我们这样做是一类使用同一个静态变量。静态变量一般不会改变,可没有办法。这些变数的行为更多的参考和可用于像你的数据库连接设置和其他网站广泛的变数。静态变量通常是命名与所有大写字母。

本文来源:http://www.gdgbn.com/jsp/16963/