"TypeError: implode(): Argument #2 ($array) must be of type ?array, string given" in PHP 8
"TypeError: implode(): Argument #2 ($array) must be of type ?array, string given" in PHP 8
<div class="form-group col-md-8" id="my" style="display: none;">
<label>Choose Vpn Server</label>
<div class="row">
<?php
$sqlUrl4 = "SELECT * FROM vpn_networks";
$result4 = myQuery($sqlUrl4);
while ($row4 = myFetchArray($result4)) {
?>
<div class="col-sm-4 text-center">
<label>
<input type="checkbox" name="vpn_network[]" value="<?php echo $row4['id'];?>" id="iptv" />
<?php echo $row4['title'];?>
</label>
</div>
<?php
}
?>
</div>
</div>
$vpn1 =implode(',', $_POST['vpn_network']?? '');
错误:
Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must
be of type ?array, string given in
C:\xampp\htdocs\ideology\partnerprocess.php:22 Stack trace: #0
C:\xampp\htdocs\ideology\partnerprocess.php(22): implode(',', '') #1
{main} thrown in C:\xampp\htdocs\ideology\partnerprocess.php on line
22
$_POST['vpn_network'] ?? ''
表示该值可以是您提交的数组或字符串。 $_POST['vpn_network'] ?? []
.
更有意义
您真的不应该相信表单中提交的值。检查你的每一个假设。如果你期望一个数组而不是检查它是否是一个数组。
$vpn_network = isset($_POST['vpn_network']) && is_array($_POST['vpn_network']) ? $_POST['vpn_network'] : [];
$vpn1 =implode(',', $vpn_network);
您也可以使用 filter extension
。它提供了许多过滤器,可以验证来自表单的数据。
implode() 函数第二个参数必须是数组。
已弃用第二个参数中的非数组。
详情请查看:
https://www.php.net/manual/en/migration74.deprecated.php
<div class="form-group col-md-8" id="my" style="display: none;">
<label>Choose Vpn Server</label>
<div class="row">
<?php
$sqlUrl4 = "SELECT * FROM vpn_networks";
$result4 = myQuery($sqlUrl4);
while ($row4 = myFetchArray($result4)) {
?>
<div class="col-sm-4 text-center">
<label>
<input type="checkbox" name="vpn_network[]" value="<?php echo $row4['id'];?>" id="iptv" />
<?php echo $row4['title'];?>
</label>
</div>
<?php
}
?>
</div>
</div>
$vpn1 =implode(',', $_POST['vpn_network']?? '');
错误:
Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must
be of type ?array, string given in
C:\xampp\htdocs\ideology\partnerprocess.php:22 Stack trace: #0
C:\xampp\htdocs\ideology\partnerprocess.php(22): implode(',', '') #1
{main} thrown in C:\xampp\htdocs\ideology\partnerprocess.php on line
22
$_POST['vpn_network'] ?? ''
表示该值可以是您提交的数组或字符串。 $_POST['vpn_network'] ?? []
.
您真的不应该相信表单中提交的值。检查你的每一个假设。如果你期望一个数组而不是检查它是否是一个数组。
$vpn_network = isset($_POST['vpn_network']) && is_array($_POST['vpn_network']) ? $_POST['vpn_network'] : [];
$vpn1 =implode(',', $vpn_network);
您也可以使用 filter extension
。它提供了许多过滤器,可以验证来自表单的数据。
implode() 函数第二个参数必须是数组。 已弃用第二个参数中的非数组。
详情请查看: https://www.php.net/manual/en/migration74.deprecated.php