//Demo01.php
public static function buildFullPage(){
$data = [
[
'type'=>'header'
],
[
'type'=>'companys',
'com_id'=>'北京',
//定义了很多变量 每个content布局都是一样的
]
],
[
'type'=>'companys',
'com_id'=>'上海',
]
],
[
'type'=>'companys',
'com_id'=>'深圳',
]
],
[
'type'=>'companys',
'com_id'=>'杭州',
]
],
[
'type'=>'footer'
]
];
foreach($data as $type=>$type_value){
switch($type){
case'header':
echo Demo01::buildHeader();
case'companys':
echo Demo01::buildCom($data);
case'footer':
echo Demo01::buildFooter();
}
}
}
页面大概布局是一个header 四个content(也就是每一个content是一个公司的介绍,模板都一样),一个footer ,用这种方法,每次都只是显示一个content,如果想全部显示,该怎么做?
//index.php
<?php
include("Demo01.php");
echo Demo01::buildFullPage();
不是 <?php ?>裡的文字會直接輸出成為html 本文
例:
<?php
require('sample.php');
?>
若是一定要用php寫,就用 echo 輸出。
例:
<?php
require('sample.php');
echo '
';?>
若是以array 做,那就是
echo $data['type'];
至於要用 for 或是 foreach 就看你自己的需要了。
首先你的echo Demo01::buildFullPage(); 很有问题 你的函数Demo01::buildFullPage() 根本没有返回值 你怎么echo他? 要返回 就在Demo01::buildFullPage() 里 echo的地方 拼接你echo的东西 在函数最后面 return你拼接的 最后你就可以通过echo Demo01::buildFullPage() 输出了
不好意思之前沒看到下面還有。
起先試試 switch 裡的 case 尾加個 break;
要一个header和footer,还有4个company?
要这样的话,你的array就不能这样,应该是
<?php
$companys = [
'beijing' => [ 'com_id' => '北京', ... ],
'shanghai' => [ 'com_id' => '上海', ... ]
];
function buildFullPage() {
echo Demo01::buildHeader();
foreach ($companys as $company) {
echo Demo01::buildCom($company);
}
echo Demo01::buildFooter();
}
?>
Demo01::buildCom传入是数组