2010-03-07 3 views
3

왜이 구문 지원 PHP는하지 않습니다 (예를 들어) :구문 분석 오류 ('-', 'foo는 바') [0]

$s = explode('-', 'foo-bar')[0]; 

를?

+1

[배열 역 참조는 이제 트렁크에] (http://schlueters.de/blog/archives/138-Features-in-PHP-trunk-Array-dereferencing.html) – Gordon

+0

가능한 중복 [방법 함수에서 반환 된 배열을 사용할 때 PHP에서 임시 변수 사용 안 함] (http://stackoverflow.com/questions/1769020/how-to-avoid-temporary-variables-in-php-when-using-an-array-returned -from-a-func) – Gordon

답변

7

PHP 파서에는 제한 사항이 있습니다. 이런 형태의 축소를 지원할 수없는 이유는 없습니다. 단지 그렇지 않습니다.

0

구문이 ‘foo-bar’)[0]이면 PHP에 관한 한 잘못되었습니다. 어떤 언어를 보았는지 모르겠지만 PHP는 그러한 구문을 구현하지 않습니다. 그러나이처럼 문자열을 분할 할 수 있습니다 :

explode(‘-’, ‘foo-bar’); 
+0

@Ignacio Vazquez-Abrams : 공유해 주셔서 감사합니다 :) – Sarfraz

+0

그건 C 언어로 작동합니다. – lost3den

5

당신은 list를 사용하여 작성할 수 있습니다 you'r 힘이 인라인 사용하는 경우

list($first_value) = explode(‘-’,‘foo-bar’); 
+0

예, 물론,하지만 PHP가 작동하지 않는 이유는 궁금합니다. – lost3den

0

대신 당신이 사용할 수 있습니다 SUBSTR을 ($ var에 , 0, strrpos ($ var, '-')); 하지만 목록 솔루션을 선호합니다. 더 우아합니다!