我正在为我的网站进行分页,但我仍然坚持使用以下代码。我一直在搞乱它至少一个小时,似乎无法解决输出的问题。
当然public function view2()
{
if(isset($_GET['var1'])){
$var1 = $_GET['var1'];
}
// Similar for var2
}
语句只执行一次。
正如预期的那样,第一个if
会返回echo ...
。
但是,出于某种原因,第二个1
将echo ...
作为字符串而不是0
作为字符串返回...
<div>1</div>
我尝试将$rowCount = 5;
$pgCount = ceil($rowCount / 10);
$pgParamArray["page"] = $pgCount;
$pgArray = array("", "", "", "", "");
for ($i = 0; $i < 5; $i++) {
if ($pgParamArray["page"] - $i > 0) {
echo $pgParamArray["page"] - $i;
$pgArray[$i] = "<div>" . $pgParamArray["page"] - $i . "</div>";
echo $pgArray[$i];
}
}
设为$pgArray
而array()
没有运气。
即使array($v1, $v2, $v3, $v4, $5)
返回float,我也尝试将$ rowCount(最初是数据库中的字符串)转换为数字。再没有骰子。
var_dump($pgParamArray)
也会返回echo $pgArray["0"]
。
0
也会返回float。
var_dump($pgArray[0])
显然会返回数组。
但是,var_dump($pgArray)
会返回var_dump($pgArray)
我绝对不知道为什么array(5) { [0]=> string(7) ...
会返回$pgArray[0]
,但0
会返回var_dump($pgArray)
。这对我来说毫无意义。 有人知道array(5) { [0]=> string(7) ...
解析为$pgArray[0]
的原因吗?
答案 0 :(得分:2)
在括号中包含你的陈述似乎对我有用:
$pgArray[$i] = "<div>" . ($pgParamArray["page"] - $i) . "</div>";
没有括号,似乎价值完全破裂;该页面根本不会打印<div>
标签,而只是在已打印的0
上添加一个尾随1
。
我认为这是由于PHP如何处理字符串连接,但我无法给出一个确切答案,说明为什么会发生这种情况。为了安全起见,我总是将任何方程式存储在变量中,然后再传入它们,或者在括号内执行所有操作。
这样,你就不会有这样奇怪的遭遇(例如):
echo "<div>" . 1 + 1 . "</div>"; // returns 1
echo "<div>" . (1 + 1) . "</div>"; // returns 2
答案 1 :(得分:2)
您需要按照接受的答案中提到的算术部分进行分组:
<div class="col-md-4">
<input class="form-control text-box single-line" id="Father_Phone" name="Father.Phone" type="text" value="">
<span class="field-validation-valid text-danger" data-valmsg-for="Father.Phone" data-valmsg-replace="true"></span>
</div>
<div class="col-md-4">
<input class="form-control text-box single-line input-validation-error" data-val="true" data-val-emailrequired="Email is required if Phone is not provided" data-val-emailrequired-stringphoneprop="Phone" id="Student_Email" name="Student.Email" type="text" value="">
<span class="text-danger field-validation-error" data-valmsg-for="Student.Email" data-valmsg-replace="true"><span for="Student_Email" class="">Email is required if Phone is not provided</span></span>
</div>
<div class="col-md-4">
<input class="form-control text-box single-line" id="Mother_Phone" name="Mother.Phone" type="text" value="">
<span class="field-validation-valid text-danger" data-valmsg-for="Mother.Phone" data-valmsg-replace="true"></span>
</div>
<div class="col-md-4">
<input class="form-control text-box single-line input-validation-error" data-val="true" data-val-emailrequired="Email is required if Phone is not provided" data-val-emailrequired-stringphoneprop="Phone" id="Father_Email" name="Father.Email" type="text" value="">
<span class="text-danger field-validation-error" data-valmsg-for="Father.Email" data-valmsg-replace="true"><span for="Father_Email" class="">Email is required if Phone is not provided</span></span>
</div>
<div class="col-md-4">
<input class="form-control text-box single-line" id="Mother_Phone" name="Mother.Phone" type="text" value="">
<span class="field-validation-valid text-danger" data-valmsg-for="Mother.Phone" data-valmsg-replace="true"></span>
</div>
<div class="col-md-4">
<input class="form-control text-box single-line input-validation-error" data-val="true" data-val-emailrequired="Email is required if Phone is not provided" data-val-emailrequired-stringphoneprop="Phone" id="Mother_Email" name="Mother.Email" type="text" value="">
<span class="text-danger field-validation-error" data-valmsg-for="Mother.Email" data-valmsg-replace="true"><span for="Mother_Email" class="">Email is required if Phone is not provided</span></span>
</div>
要了解此处发生了什么,您需要在命令行上运行它:
$pgArray[$i] = "<div>" . ($pgParamArray["page"] - $i) . "</div>";
如您所见,php > $rowCount = 5;
php >
php > $pgCount = ceil($rowCount / 10);
php >
php > $pgParamArray["page"] = $pgCount;
php >
php > $pgArray = array("", "", "", "", "");
php >
php > for ($i = 0; $i < 5; $i++) {
php {
php { if ($pgParamArray["page"] - $i > 0) {
php {
php { echo $pgParamArray["page"] - $i;
php {
php { $pgArray[$i] = "<div>" . $pgParamArray["page"] - $i . "</div>";
php {
php { echo $pgArray[$i];
php {
php { }
php {
php { }
10</div>
php >
的输出为echo $pgParamArray["page"] - $i;
,紧随其后为1
作为0</div>
的内容。
真正的问题是,
中的$pgArray[$i]
发生了什么
<div>
在看到实际输出之后,答案现在变得更加明显:它是一个分组问题。 PHP只是从左到右:
$pgArray[$i] = "<div>" . $pgParamArray["page"] - $i . "</div>";