以下代码正常。在类文件中,函数setRowCol有四个参数($ r,$ c,$ v,$ pa),其中$ pa是填充的参数,它在函数startCol($ p)中传递。但是当我像下面的
那样设置填充时,它不起作用public function startCol($p) {
$tab= "<td Style='border:4px solid black; padding:'".$p."'px;>";
return $tab;
}
如果我直接给出值
,则工作正常$tab= "<td Style='border:4px solid black; padding:110px;>";
但我想保持填充值作为参数。有解决方案吗?
全班文件
class CreateTable {
public $rows;
public $cols;
public $val = array();
public $pad;
public function setRowCol($r,$c, $v, $pa) {
$this->rows = $r;
$this->cols = $c;
$this->val = $v;
$this->pad = $pa;
echo $this->startTable();
for($i=0; $i<$this->rows && $i<sizeof($this->val); $i++) {
echo $this->startRow();
for($j=0; $j<$this->cols && $j<sizeof($this->val); $j++) {
echo $this->startCol($this->pad);
echo $this->val[$j];
echo $this->endCol();
}
echo $this->endRow();
}
echo $this->endTable();
}
function startTable() {
$tab = "<table Style='border:1px solid black';>";
return $tab;
}
function endTable() {
$tab= "</table>";
return $tab;
}
function startRow() {
$tab= "<tr Style='border:1px solid black';>";
return $tab;
}
function endRow() {
$tab= "</tr>";
return $tab;
}
public function startCol($p) {
$tab= "<td Style='border:4px solid black; padding:'".$p."'px;>";
return $tab;
}
function endCol() {
$tab= "</td>";
return $tab;
}
}
?>
文件
<?php
include "CreateTable.php";
$arr = array("Jan", "feb","mar", "apr");
$tab = new CreateTable();
echo $tab->setRowCol(3,10, $arr, 110);
?>
答案 0 :(得分:3)
执行此操作时:
$tab= "<td Style='border:4px solid black; padding:110px;>";
结果如下:
<td Style='border:4px solid black; padding:110px;>
这在技术上是无效的,因为它在属性的末尾缺少结束引号,但浏览器可能在渲染时为您纠正。
但是当你这样做时:
$tab= "<td Style='border:4px solid black; padding:'".$p."'px;>";
结果如下:
<td Style='border:4px solid black; padding:'100'px;>
哪个更无效,可能会让浏览器感到困惑。
我不知道你为什么把这些单引号放在那里,但它们会产生无效的标记。不要在调试时查看呈现的页面,实际查看服务器返回的源。
基本上,不要添加额外的报价,并添加结束报价:
$tab= "<td Style='border:4px solid black; padding:".$p."px;'>";
或者,更好的是,在标记中使用双引号,因为这是HTML技术上所要求的:
$tab= '<td Style="border:4px solid black; padding:'.$p.'px;">';
答案 1 :(得分:1)
考虑以下方法:
public function startCol($p = 0) {
$pad = (!$p)? $this->pad : $p;
$tab= "<td Style='border:4px solid black; padding:".intval($pad)."px;'>";
return $tab;
}
如果未传入参数,则使用内部$this->pad
值
答案 2 :(得分:0)
你有一个太多&#39;和一个人是错位的。试试这样:
public function startCol($p) {
$tab= "<td Style='border:4px solid black; padding:" . $p . "px;'>";
return $tab;
}