我的程序中包含以下代码,但是当我以无法解决的“ index.php”形式包含“ errors.php”时,它给我一个错误。我以前使用过它,但是从未遇到过此错误,所以我对此错误感到困惑。这是我的代码:
Index.php
<form method="post" action="register.php">
<?php include('errors.php'); ?>
<div class="input-group">
<label>Título</label>
<input type="title" name="title" value="">
</div>
<div class="input-group">
<label>Difficulty</label>
<select name="difficulty" id="difficulty">
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
<br>
<div class="input-group">
<label>Solución</label>
<textarea name="solution" rows="4" cols="55"></textarea>
</div>
<div class="input-group">
<button type="submit" class="btn" name="reg_exercise">Add</button>
</div>
</form>
Errors.php
<?php
if (isset($_SESSION["errors_reg"])) {
$errors = $_SESSION["errors_reg"];
$_SESSION["errors_reg"] = null;
}
?>
<?php
if (isset($_SESSION["errors_student"])) {
$errors = $_SESSION["errors_student"];
$_SESSION["errors_student"] = null;
}
?>
<?php if (count($errors) > 0) : ?>
<div class="error">
<?php foreach ($errors as $error) : ?>
<p><?php echo $error ?></p>
<?php endforeach ?>
</div>
<?php endif ?>
<?php
$errors = null;
?>
在<?php if (count($errors) > 0) : ?>
行中出现错误
谁能告诉我为什么出现此错误?这是错误:
Warning: count(): Parameter must be an array or an object that implements Countable in C:\wamp64\www\project\errors.php on line 15 <?php if (count($errors) > 0) : ?>
答案 0 :(得分:1)
警告明确指出变量$errors
应该为array
或object
,您需要更改代码
$errors[] = $_SESSION["errors_reg"];
和
$errors[] = $_SESSION["errors_student"];
答案 1 :(得分:1)
由于$errors
仅在各种if
条件内设置,因此将不会总是创建它。因此,首先将默认值设置为空数组,然后在每个点添加一个新错误,并使用[]
...
<?php
$errors = [];
if (isset($_SESSION["errors_reg"])) {
$errors[] = $_SESSION["errors_reg"];
$_SESSION["errors_reg"] = null;
}
?>