개발

php - join() 함수

에드몽단테스 2009. 8. 20. 00:35

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);
?>

반응형