2012-11-19 3 views
-3

에 넣으십시오. 내 문제입니다.배열을 PHP 클래스

번역과 함께 내 사이트의 모든 페이지에 배열이 포함되어 있습니다. 배열이 구성되어

$translation = array(); 
$translation['0'] = 'aaa'; 
$translation['1'] = 'bbb'; 
$translation['2'] = 'ccc'; 
$translation['3'] = 'ddd'; 
$translation['4'] = 'eee'; 

나는 각 언어에 대한 파일이 - 배열 깁니다.

클래스 내부의 배열 요소를 호출하면 "정의되지 않은 변수"라는 오류가 발생합니다.

내 클래스에 외부 배열 요소를 전달할 수 있습니까?

감사합니다.

당신은 언어를 지정하지 않았지만, 가정 것은 PHP의 어느 인수 예에서 & $ 번역과 기준 (안 값)에 의해 배열 변수를 전달

+1

생성자에서? 관련 방법의 주장으로? 진심으로, 왜 배열을 정의하는 코드를 보여 주기로 선택 했습니까 (실제로는 그 자체로는 의미가 없지만). 실제로 사용하는 코드는 아닙니다. – raina77ow

답변

-1

Ginetto. 당신의 클래스 메소드 (또는 생성자) 또는 당신이 당신의 방법에서 '글로벌 $ 번역'하여 예를 사용하여 전역 변수에 액세스 할 수 있습니다에

$my_object->doSomething(&$translation_arg); 

.

class MyClass { 
    global $translation; 
... 
} 

첫 번째 방법

는 것이 더 좋습니다.

+0

답장을 보내 주셔서 감사합니다; 첫 번째 솔루션을 사용하면 메모리가 낭비되는 것입니까? 내 배열에는 많은 요소가 있습니다. 또한 클래스 생성자에서 배열을 수신해야합니까? – Ginetto8

+0

아니요, 추가 메모리가 필요하지 않습니다. 즉, $ translation_arg의 내용을 복제하는 것이 아니라 단지 참조를 사용하는 것입니다. 이것은 C++ 참조와 비슷합니다. '안전한'포인터 또는 '쉬운 포인터'와 비슷합니다. 그들은 당신의 호출 함수를 명시 적 포인터를 보내지 않아도되는 것을 저장합니다 - 당신은 단지 그것들을 정상적으로 쓰고 호출 된 함수는 값이 아닌 매개 변수에 대한 참조에서 작업하고 있다는 사실을 나타냅니다. (이 답변이 투표 된 이유는 확실하지 않습니다. 나는 downvotes에 대해 소중한 것은 아니지만 질문에 대답하는 데 실수를 범한 경우 관심을 가질 것입니다.) – Pete855217