在 Class 中启动数组
Initating an Array inside a Class
我花了很多时间试图让一个数组在 class 中初始化。我想要尝试的是使用数组和子 class 创建一个侧边菜单。几天来我一直试图解决这个问题,现在我正在寻求帮助。我感觉我正在学习 PHP.
,因此我缺少一些基本的东西
下面是我的代码,注释掉的行是对未奏效的解决方案的尝试。
<?php
/************* global variables ******************************/
//global $house_array, $car_array, $vacation_array, $company_address;
$company_name = "Heaven HVAC";
$street = '12345 Blue Canyon Rd.';
$company_citystatezip = "Heaven, CA 91777";
/************* end global variables **************************/
echo '<H1 align="center">Calling Array inside Child Class</H1>';
class Company{
//// insert object variables (properties) HERE
var $company_url = "http://localhost";
var $company_email = "example@example.com ";
//// insert methods here
function getHeader($company_name, $color) {
$topheader = "<TABLE align='center'; style='background-color:$color; width:50%'><TR><TD>";
$topheader .= "<H1 style='text-align:center'>$company_name</H1>";
$topheader .= "</TD></TR></TABLE>";
return $topheader;
}
function getFooter($color) {
$this->address;
$bottomfooter = "<TABLE align='center'; style='background-color:$color;width:50%'><TR><TD>";
$bottomfooter .= "<center><b><u>$this->address</center></b></u>";
$bottomfooter .= "</TD></TR></TABLE>";
return $bottomfooter;
}
} // end class Company
//// Working On child class - If commented out, then the code has been tried and failed
class AirCondition extends Company {
var $navbar_array;
//// create array
function create_navbar_array ( ) {
$mainurl = $this->company_url;
$this->navbar_array = array( "Home Page"=>"$mainurl?whichpage=home", "Sales"=>"$mainurl?whichpage=sales",
"Support" => "$mainurl?whichpage=support", "Contacts" => "$mainurl?whichpage=contact" );
}
//create_navbar_array();
// return $navbar_array;
function getLeftNavBar($array){
// create_navbar_array();
## Create a table to display arrays
print "<TABLE BORDER='1'>";
echo '<tr><td>Navigation Menu</td></tr>';
foreach($array as $Page){
echo "<tr><td>{$Page}</td></tr>";
return $array;
}
echo "</TABLE>";
}
}
$HVACcompany = new AirCondition();
$HVACcompany->address = "777 Estate Rd <br /> $company_citystatezip";
echo $HVACcompany->getHeader($company_name, orange);
echo "<br/>";
echo $HVACcompany->getFooter(green);
//echo $HVACcompany->getLeftNavBar();
//echo $HVACcompnay->create_navbar_array();
//$HVACcompnay->create_navbar_array();
$HVACcompany->getLeftNavBar($navbar_array);
?>
我可以创建网页布局,但数组未初始化。我在做什么 wrong/missing?
下一行:
$HVACcompany->getLeftNavBar($navbar_array);
应该是:
$HVACcompany->getLeftNavBar($HVACcompany->navbar_array);
因为 $navbar_array 从未在全局命名空间中声明,但是它在 class AirCondition 中被声明为 public 变量,该变量是使用变量 $HVACcompany 初始化的。
另外你需要调用函数$HVACcompany->create_navbar_array();
在调用 $HVACcompany->getLeftNavBar($HVACcompany->navbar_array);
以创建数组 $navbar_array.
之前
同时删除 foreach 循环中的 return $array;
语句。
我花了很多时间试图让一个数组在 class 中初始化。我想要尝试的是使用数组和子 class 创建一个侧边菜单。几天来我一直试图解决这个问题,现在我正在寻求帮助。我感觉我正在学习 PHP.
,因此我缺少一些基本的东西下面是我的代码,注释掉的行是对未奏效的解决方案的尝试。
<?php
/************* global variables ******************************/
//global $house_array, $car_array, $vacation_array, $company_address;
$company_name = "Heaven HVAC";
$street = '12345 Blue Canyon Rd.';
$company_citystatezip = "Heaven, CA 91777";
/************* end global variables **************************/
echo '<H1 align="center">Calling Array inside Child Class</H1>';
class Company{
//// insert object variables (properties) HERE
var $company_url = "http://localhost";
var $company_email = "example@example.com ";
//// insert methods here
function getHeader($company_name, $color) {
$topheader = "<TABLE align='center'; style='background-color:$color; width:50%'><TR><TD>";
$topheader .= "<H1 style='text-align:center'>$company_name</H1>";
$topheader .= "</TD></TR></TABLE>";
return $topheader;
}
function getFooter($color) {
$this->address;
$bottomfooter = "<TABLE align='center'; style='background-color:$color;width:50%'><TR><TD>";
$bottomfooter .= "<center><b><u>$this->address</center></b></u>";
$bottomfooter .= "</TD></TR></TABLE>";
return $bottomfooter;
}
} // end class Company
//// Working On child class - If commented out, then the code has been tried and failed
class AirCondition extends Company {
var $navbar_array;
//// create array
function create_navbar_array ( ) {
$mainurl = $this->company_url;
$this->navbar_array = array( "Home Page"=>"$mainurl?whichpage=home", "Sales"=>"$mainurl?whichpage=sales",
"Support" => "$mainurl?whichpage=support", "Contacts" => "$mainurl?whichpage=contact" );
}
//create_navbar_array();
// return $navbar_array;
function getLeftNavBar($array){
// create_navbar_array();
## Create a table to display arrays
print "<TABLE BORDER='1'>";
echo '<tr><td>Navigation Menu</td></tr>';
foreach($array as $Page){
echo "<tr><td>{$Page}</td></tr>";
return $array;
}
echo "</TABLE>";
}
}
$HVACcompany = new AirCondition();
$HVACcompany->address = "777 Estate Rd <br /> $company_citystatezip";
echo $HVACcompany->getHeader($company_name, orange);
echo "<br/>";
echo $HVACcompany->getFooter(green);
//echo $HVACcompany->getLeftNavBar();
//echo $HVACcompnay->create_navbar_array();
//$HVACcompnay->create_navbar_array();
$HVACcompany->getLeftNavBar($navbar_array);
?>
我可以创建网页布局,但数组未初始化。我在做什么 wrong/missing?
下一行:
$HVACcompany->getLeftNavBar($navbar_array);
应该是:
$HVACcompany->getLeftNavBar($HVACcompany->navbar_array);
因为 $navbar_array 从未在全局命名空间中声明,但是它在 class AirCondition 中被声明为 public 变量,该变量是使用变量 $HVACcompany 初始化的。
另外你需要调用函数$HVACcompany->create_navbar_array();
在调用 $HVACcompany->getLeftNavBar($HVACcompany->navbar_array);
以创建数组 $navbar_array.
同时删除 foreach 循环中的 return $array;
语句。