2012-12-24 9 views
3

에서 PHP 상수의 사용 나는 foreach 루프에서 PHP의 contants를 사용해야합니다 : 그것은 잘 작동하지만, Aptana를 편집기 구문 오류가 표시되지만 foreach 루프

define('WEBS', 'http://google.com, http://yahoo.com'); 
foreach (WEBS as $a) { 
    //do something 
} 

그러나 나는 코드에 따라 것을 할 수 있었다. 올바른 방법으로 안내해주세요.

foreach (get_defined_constants(true)['user']['WEBS'] as $w) { 
//do something 
} 
+1

을 무슨 일을하는지 대해 이야기 할 –

답변

6

당신은 당신도 preg_split을 사용할 수 있습니다, 당신은 또한 그것을


을 반복 할 수 있도록

foreach (explode(', ', WEBS) as $url) { ... 

explode() 배열에 문자열을 깰 것이다 첫번째 값 explode에 있습니다 .

foreach(preg_split('/,\s*/', WEBS) as $url) { ... 

preg_split() 정규식을 기반으로 문자열을 분할 할 수 있습니다. 배열을 반환합니다. 예를 들어,이 정규식을 사용하면 쉼표 다음의 공백은 선택 사항입니다.

# a string like this 
foo.com, hello.com,world.com, test.com 

# would still split properly to 
[ 
    'foo.com', 
    'hello.com', 
    'world.com', 
    'test.com' 
] 

정규식 메서드는 항상 필요하지 않습니다. 하지만 필요할 때 좀 더 제어 할 수 있다는 것을 보여줄 것이라고 생각했습니다.


당신이 후 []를 사용할 수 없기 때문에 Aptana를 당신에게 오류를 표시하는 func() 이전 PHP 5.4. 잘해야

$constants = get_defined_constants(true); 
$constants['user']['WEBS']; 

그러나이 경우 WEBS에 : 그 해결하기 위해, 당신은 같은 일을 할 수 있습니다. 유일한 문제는 먼저 문자열을 배열로 변환해야한다는 것입니다.

-1

상수의 오용과 같습니다.

일반적인 배열 유형의 변수가 필요합니다.

$webs = array('http://google.com', 'http://yahoo.com'); 
foreach ($webs as $a) { 
    //do something 
} 

당신은 여전히 ​​상수는 당신이 필요로하는 무엇이라고 생각하면 - 왜 그렇게 설명, 더 나은 다른 질문을하고, 배열로 변환 당신이 잘못