-
- $a = 'flower';
- echo "She received some $as";
- // 문자 s는 유효한 것으로 처리됩니다. 변수 이름 구성 요소, 여기서 변수는 $a
- echo "She received some ${a}s"; // 유효
- echo "She received some {$a}s" // 유효함; 메소드 사용
-
코드 복사
우리가 표현하고 싶은 것은 "she received some flowers"이고, 문맥상 flower는 복수형( 즉, S)를 마지막에 추가해야 하는데 변수가 어떤 방식으로든 정의되지 않은 경우 첫 번째 에코가 발생합니다. 분명히 우리는 출력이 $as가 아닌 $a가 되기를 원합니다. 그렇다면 일반적으로 이 출력을 어떻게 처리합니까?
-
- echo "그녀는 $a"."s"를 받았습니다;
- echo "".$a."s를 받았습니다;
- // 이 두 가지 관례적인 작성 방법은 중괄호를 사용한 작성 방법보다 덜 간결하고 명확해야 합니다.
-
코드 복사
참고: {가 $ 앞이나 뒤에 나타나는지 여부에 관계없이 중괄호는 기호 바로 옆에 있는 경우에만 구분 기호로 간주됩니다. . 사이에 공백을 추가하지 마십시오. 그렇지 않으면 일반 중괄호로 처리됩니다.
-
- echo "She received some { $a}s";
- // 출력 결과는 다음과 같습니다. She received some { flower}s
코드 복사
2. 복잡한 구문 규칙(PHP4에서 사용되는 표현식 등을 정의하려면 중괄호를 사용하세요):
-
- echo "유효한 쓰기: {$arr[4][3]}";
- // 유효한 다차원 배열 정의
- echo "유효한 쓰기: {$arr['foo'][3]}";
- // 유효합니다. 문자열에 다차원 배열을 사용할 때는 반드시 괄호로 묶어야 합니다
- echo "유효합니다. 쓰는 방법은: {$this->width}00";
- // 가 유효하며, 정의하지 않으면 $this->width00
- echo " 가 됩니다. 쓰는 방법은 다음과 같습니다. : {$this-> ;value[3]->name}";
- // 유효; 이 예는 체인 호출
- echo ": $name: {${$name을 정의하는 유효한 쓰기 방법을 보여줍니다. }}";
- // 유효함. 이 예에서 보여주는 효과는 실제로 변수 변수입니다
- echo "효과적인 쓰기: {${getName()}}";
- // 유효함. 이 예에서는 함수의 반환 값을 변수 이름으로 사용
- echo "유효한 전달: {${$this->getName()}}";
- // 이 예에서는 함수의 반환 값을 변수 이름으로 사용하는 방법을 보여줍니다.
- 참고 1: echo "{getName()}과 같이 쓰는 것이 유효한가요?"; 출력 결과는 '
- {getName()}과 같이 쓰는 것이 유효한가요?'입니다. $가 없기 때문에 중괄호는 구분 기호로 사용되지 않습니다.
- 참고 2: echo "다음과 같이 쓰는 것이 유효한가요: {$arr[foo][3]}" 전에 먼저 해보자. 이 질문에 답하기 실험:
- error_reporting(E_ALL);
- $arr = array('a', 'b', 'c', 'd'=>'e');
- echo " 이것은 $ arr[d]";
- // 이렇게 써도 문제가 없다는 걸 알았으니 이렇게 쓰면 어떨까요?
- echo $arr[d];
- 다음 오류가 발생했습니다.
- 주의: 정의되지 않은 상수 d 사용 - 'd'로 가정
- 참고: 정의되지 않은 상수 d가 사용되었으며 아마도 'd'여야 합니다. '
- 그래서 코드를 다음과 같이 수정하면
- error_reporting(E_ALL);
- $arr = array('a', 'b', 'c', 'd'=> 'e') ;
- define('f', 'd');
- echo $arr[f];
-
코드 복사
문제 없음 이번에는. 문자열에서 배열의 인덱스를 작은따옴표로 묶지 않으면 문제가 없다고 볼 수 있지만, 이 쓰기 방법이 문자열에 없으면 오류가 보고되며, {$arr[foo 문자열의 ][3]} 구문 분석은 비문자열 구문 분석을 기반으로 합니다. 따라서 인덱스에 작은따옴표를 추가하지 않고 문자열의 배열을 구분하기 위해 중괄호만 추가하는 것은 잘못된 것입니다. 프로그램은 작은따옴표 없이 인덱스를 상수로 구문 분석하므로 오류가 발생합니다. 올바른 작성 방법은 다음과 같습니다.
echo "올바른 쓰기: {$arr['foo'][3]}";
특별 알림: echo "This is $arr[d]"; 이 쓰기 방법은 프로그램에서 구문 분석할 수 있지만 배열이 1차원 배열인 경우로 제한됩니다. 엄격한 글쓰기 방법은 다음과 같아야 합니다: echo "This is {$arr['d']}"; 제 학생이 이 점에 대해 저와 논쟁을 벌인 적이 있습니다. 이전 글쓰기 방법이 결과를 낼 수 있는데 왜 사용해야 합니까? 후자의 글쓰기 방식은 어떻습니까? 그럼 계속해서 이전 코드를 수정해 보겠습니다.
-
- error_reporting(E_ALL);
- $arr = array('a', 'b', 'c',
- 'd'= >array('e'=>'f')
- );
- echo "$arr[d][e]입니다.";
-
코드 복사
아직도 올바르게 구문 분석할 수 있나요? 중괄호를 추가하는 것이 꼭 필요하다는 점을 말씀드리고 싶습니다.
참고 3:
-
- error_reporting(E_ALL);
- $arr = array('a', 'b', 'c', 'd');
- echo "이것은 {$arr[2]}입니다
- ";
- echo "이것은 {$arr['2']}입니다
- ";
-
코드를 복사해서 실행해 보면 결과는 왜 똑같을까요? PHP는 약한 유형의 언어이기 때문입니다.
-
- ----SQL 문
- //예 1:
- $SQL1 = "id={$_GET[인 테이블에서 *를 선택합니다. 'id']}";
- //예 2:
- $SQL2 = "id={$this->id}인 테이블에서 * 선택";
코드 복사
|