无法在PHP中打印数组
我在使用这段PHP代码时遇到了一些问题。我不知道它为什么要打印无法在PHP中打印数组,php,arrays,Php,Arrays,我在使用这段PHP代码时遇到了一些问题。我不知道它为什么要打印Array8次。据我所见,它应该打印数组的内容 目标是使用全局声明一个数组,定义该数组,将其分配给另一个数组并显示整个数组 $car_array = array( ); $array = array( ); create_array_cars (); displayProduct ($array); function create_array_cars ( ) { global $car_array;
Array
8次。据我所见,它应该打印数组的内容
目标是使用全局
声明一个数组,定义该数组,将其分配给另一个数组并显示整个数组
$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));
$car_array=array();
$array=array();
创建_数组_cars();
显示产品($阵列);
函数create\u array\u cars(){
全球$car_阵列;
$car_array=array();
$car_array[]=“ID:12345”;
$car_数组[]=“ID:45678”;
$car_数组[]=“ID:67890”;
$car_数组[]=“ID:89123”;
返回$car_数组;
}
函数displayProduct($array){
全球$阵列;
对于($i=0;$i,当PHP将数组转换为字符串时,它只使用array
。您想要使用或类似的东西。将函数的返回值存储在变量中:
$array = create_array_cars();
displayProduct($array);
create\u array\u cars()
返回一个数组-您需要将其存储在一个变量中供以后使用。displayProduct();
将数组作为其参数并显示其中的内容。此外,它不返回值-因此我们不需要存储返回值
在不需要时停止使用global
s:
$array = create_array_cars();
displayProduct($array);
Globals通常被认为是一种糟糕的编码风格。你真的不想在这里使用它。你的函数甚至不需要处理外部数据。你只需要在函数内部创建一个数组,然后返回它。因此你的代码可以是:
function create_array_cars() {
// Create the array
$car_array = array(
"ID: 12345",
"ID: 45678",
"ID: 67890",
"ID: 89123"
);
// Return it
return $car_array;
}
打印数组值,而不是试图显示整个数组:
$array = create_array_cars();
displayProduct($array);
打印任何数组都会打印array
。您需要在数组中选择单个值-因为您使用的是基于数字索引的for
循环,所以可以使用$array[$i]
来执行此操作
另外,我已将$I<4
更改为$I
。这使您的代码更具动态性。即使数组中有4个以上的元素,它也可以工作(但在这种情况下不是这样,因为您在另一个函数中手动返回预定义数组)
修改后的函数如下所示:
function displayProduct($array) {
for ($i = 0; $i < count($array); $i++) {
print $array[$i] . "<br />";
}
}
函数显示产品($array){
对于($i=0;$i ”;
}
}
函数显示产品($array){
foreach($val形式的数组){
打印$val.“
”;}
}
$car\u array=array();
$array=array();
创建_数组_cars();
显示产品($阵列);
函数create\u array\u cars(){
$car_array=array();
$car_array[]=“ID:12345”;
$car_数组[]=“ID:45678”;
$car_数组[]=“ID:67890”;
$car_数组[]=“ID:89123”;
返回$car_数组;
}
函数displayProduct($array){
//全球$阵列;
打印(数组);
回声“
”;
}
$array=创建_array_cars();
显示产品($阵列);
不使用全局。并且打印“$array
”不正确…请删除此“”。
或者使用print_r($VAR)如果使用“global$array”,则不需要displayProduct的参数$array。@CoertMetz:更新了答案:)我也在使用globals上下了功夫。作业要求使用globals,这就是为什么到处都是globals的原因:P@user3367565:使用global
s不是一个很好的编码实践。有关更详细的解释,请参阅。该全局值用于什么?请删除它!