2014-11-27 1 views
0

이상한 상황과 나는 그것을 (따라서 이전 게시물을 찾을 수 없습니다) 무엇을 호출할지 모르겠어요.PHP에서 문자열을 concat하려고하지만 그것의 배열을 생각합니다

내가 같은 다른 문자열로 CONCAT을 시도하는 다음 함수로 문자열 인 변수를 전달하고있어 :

function saveFunction($number){ 

$myStr = "drawer-$number[]"; 
return $myStr; 

} 

그래서 출력해야한다 :

saveFunction("2") 
"drawer-2[]" 

그러나 대괄호 때문에 $ number를 배열로 액세스한다고 생각하기 때문에 출력은 다음과 같습니다.

"0" 

나는 이것을 시도했다 :

function saveFunction($number){ 

$myStr = "drawer-$number"; 
return $myStr + "[]"; 

} 

그리고 같은 결과가 나왔다.

제안 사항?

+1

는'$ myStr = "서랍 -"와 같은 문자열을 형성 하는가 $ 수를 "[]";'도움이됩니다..? – robobobobo

+2

모호성 제거 :'$ myStr = "drawer - {$ number} []" –

+0

그리고'return $ myStr + "[]";'?!? '+'는 PHP에서 __addition__ 연산자입니다. '.'는 연결 연산자입니다 –

답변

3

PHP에서 큰 따옴표는 까다 롭습니다. 그들은 문자열을으로 해석합니다. 이것이 바로 "drawing-$number"이 작동하는 이유입니다.

문자열이 자동 해석을 위해 제공되지 않는 경우가 있습니다. 당신은 항상 안전한 연결 사용할 수 있습니다

return "drawer-" . $number . "[]"; 

또는 {}를 사용하는 자동 감지 도움 :

return "drawer-{$number}[]"; // as opposed to: "drawer-{$number[]}" 

또는 사용 sprintf :

return sprintf("drawer-%s[]", $number); // %s because $number is actually a string, not an int 
+0

정말 고마워요 !! – cjr

0

할 수 있습니다 단지와 변수 CONCAT 다음과 같은 문자열 :

<?php 

    function saveFunction($number){ 
     return $myStr = "drawer-" . $number . "[]"; 
    } 


    echo saveFunction("2"); 

?> 

출력 :

drawer-2[]  

자세한 내용은 다음을 참조하십시오 http://php.net/manual/en/language.operators.string.php

관련 문제