php - join() 함수
join() 함수는 implode() 함수의 별칭으로 배열의 원소를 특정문자와 함께 결합하여 문자열을 반환한다.
string implode ( string $glue , array $pieces )
예를 들어보자.
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = join(",", $array);
echo $comma_separated; // lastname,email,phone
?>
그런데 다음과 같이 배열을 선언하는 경우 오류메세지를 보인다.
<?php
$array[] = 'lastname';
$array[] = 'email';
$array[] = 'phone';
$comma_separated = join(",", $array);
echo $comma_separated; // 무엇이 나올까? 결과값은 정상적으로 잘 나온다. (lastname,email,phone)
?>
하지만 오류메세지도 같이 뿌려준다.
Warning: join() [function.join]: Invalid arguments passed in /home/segio/cell000/html/segio/works/namecard/group_send.php on line 111
배열값을 print_r() 함수로 살펴보면 위의 배열과 아래의 배열은 동일한 값을 나타낸다.
print_r($array)
Array
(
[0] => 'lastname'
[1] => 'email'
[2] => 'phone'
)
정확한 원인은 모르겠으나 다음과 같이 형변환하여 사용할 수 있다.
<?php
$comma_separated = join(",", (array)$array);
?>
변수를 배열로 선언하면 오류가 나타나지 않는다.
<?php
$array = array();
$array[] = 'lastname';
$array[] = 'email';
$array[] = 'phone';
$comma_separated = join(",", $array);
?>