我在使用这个PHP代码时遇到了一些麻烦。我不确定为什么打印Array
8次。从我看来,它应该是打印数组的内容
目标是使用global
声明一个数组,定义数组,将其分配给另一个数组并显示整个数组。
$car_array = array( );
$array = array( );
create_array_cars ();
displayProduct ($array);
function create_array_cars ( ) {
global $car_array;
$car_array = array( );
$car_array[] = "ID: 12345" ;
$car_array[] = "ID: 45678" ;
$car_array[] = "ID: 67890" ;
$car_array[] = "ID: 89123" ;
return $car_array;
}
function displayProduct ($array) {
global $array;
for ($i=0;$i<4;$i++) {
print "$array<br>"; }
}
$array = create_array_cars();
print (displayProduct($array));
答案 0 :(得分:1)
答案 1 :(得分:1)
将函数的返回值存储在变量中:
$array = create_array_cars();
displayProduct($array);
create_array_cars()
返回一个数组 - 您需要将其存储在变量中以供以后使用。 displayProduct();
将数组作为参数,并显示其中的内容。此外,它不返回值 - 因此我们不需要存储返回值。
在您不需要时停止使用global
:
全球通常被认为是一种糟糕的编码风格。你真的不想要它。您的功能甚至不需要处理外部数据。你只是在这个函数中创建一个数组 并返回它。所以你的代码可以是:
function create_array_cars() {
// Create the array
$car_array = array(
"ID: 12345",
"ID: 45678",
"ID: 67890",
"ID: 89123"
);
// Return it
return $car_array;
}
打印数组值,而不是尝试显示整个数组:
打印任何数组始终打印Array
。您需要在数组中选择单个值 - 因为您使用的是基于数字索引操作的for
循环,您可以使用$array[$i]
执行此操作。
此外,我已将$i < 4
更改为$i < count($array)
。这使您的代码更加动态。即使数组中有超过4个元素,它也会工作(不是在这种情况下,因为你在另一个函数中手动返回一个预定义的数组)。
修改后的功能如下:
function displayProduct($array) {
for ($i = 0; $i < count($array); $i++) {
print $array[$i] . "<br />";
}
}
答案 2 :(得分:1)
function displayProduct ($array) {
foreach ($array as $val) {
print $val."<br>"; }
}
答案 3 :(得分:-2)
$car_array = array( );
$array = array( );
create_array_cars ();
displayProduct ($array);
function create_array_cars () {
$car_array = array( );
$car_array[] = "ID: 12345" ;
$car_array[] = "ID: 45678" ;
$car_array[] = "ID: 67890" ;
$car_array[] = "ID: 89123" ;
return $car_array;
}
function displayProduct ($array) {
//global $array;
print_r( $array);
echo "<bR>";
}
$array = create_array_cars();
displayProduct($array);
不使用全球。并打印&#34; $ array
&#34;是不正确的...删除这个&#34; &#34 ;.
或使用print_r($ VAR)