작은 따옴표로 PHP에서 줄 바꿈 인쇄


125

작은 따옴표를 최대한 많이 사용하려고하는데 작은 따옴표로 \ n을 사용할 수 없다는 것을 알았습니다. return 키를 눌러 문자 그대로 줄 바꿈을 입력 할 수는 있지만 코드의 들여 쓰기를 망칠 수 있습니다.

작은 따옴표를 사용할 때 줄 바꿈을 생성하는 ASCII 문자 또는 입력 할 수있는 것이 있습니까?


브라우저와 터미널 모두에서 작동하는 솔루션에 관심이있는 사용자 (cli, 명령 행) : stackoverflow.com/a/9665253/1923625
— Omar Tariq

솔직히 모든 비용으로 작은 따옴표를 찾는 이유는 없습니다 . 두 구문 모두 이유가 있습니다. 당신이 보간 변수 또는 이스케이프 시퀀스를 원하는 경우에, 당신이하는 가정 따옴표를 사용하기 위해 의도적으로 . 따르는 좋은 규칙은 다음과 같습니다 . 좋은 이유로 큰 따옴표 를 원하지 않는 한 항상 작은 따옴표를 사용 하십시오 . 그것은 내 친구들의 일관성입니다.
— 빅터 슈뢰더

답변:


142

작은 따옴표는 16 진 코드 교체를 방해하기 때문에 아닙니다.

echo 'Hello, world!' . "\xA";

1
아 알았어
— Matt

알겠습니다. 그는 10 분 안에 대답했다. 그때까지 기다렸다가 받아 들였다가 잊어 버렸습니다.
— Matt

1
이것에 대한 대안이 있습니까? 큰 따옴표를 사용할 수없는 preg_replace에서 사용해야합니다.
— Alex Hadley

1
그것은 올바른 추론이 아닙니다. PHP에서는 줄 바꿈 문자를 작은 따옴표로 표현할 수 없기 때문에 아닙니다. 그리고 그게 다야. 매뉴얼을 읽는 것이 도움이 될 수 있습니다 :)
— hakre

3
@hakre 확실히, 설명서를 읽는 것은 도움이 수 있지만, 다행히도, StackOverflow의 편리 정확히이 답을 볼 수있는 장소입니다)
— 프레데릭 Krautwald

108
echo 'hollow world' . PHP_EOL;

상수 PHP_EOL을 사용하면 OS 독립적입니다.


4
일반적으로 PHP_EOL을 사용하면 코드가 실행중인 시스템에 따라 달라 지므로 사용하지 않아야합니다. 예를 들어 Linux 서버가 다른 서버와 통신하고 서버가 Windows로 바뀝니다 ... 좋지 않습니다.
— Andreas

25

echo브라우저를 사용하는 경우 다음 <br/>과 같이 사용할 수 있습니다 .

echo 'Will print a newline<br/>';
echo 'But this wont!';

3
불행히도 터미널 목적으로 더 많은 .. 귀하의 응답에 감사드립니다.
— Matt

텍스트 전용 이메일로 시도해보십시오;)
— Kai Noack

22

참고로 큰 따옴표없이 문자열에 줄 바꿈을 넣을 수 있습니다.

printf('Please%1$sgive%1$sme%1$snewlines%1$s', PHP_EOL);

큰 따옴표에 대한 비합리적인 두려움이 한계를 모르는 경우 유용 할 수 있습니다. 이 치료법이 질병보다 더 나 빠질까 걱정됩니다.


작은 따옴표를 사용할 때 더 나은 성능을 얻을 수 있으므로 더 자주 사용하려고하지 않습니다. 그러나 yah, 이것은이 문제에 대한 훌륭한 해결책이 아닙니다. . 감사.
— Matt

5
나는 그것을 테스트하지는 않았지만 큰 따옴표를 사용하는 것이 printf일반적으로 또는 문자열 catenation을 사용하는 것보다 빠릅니다 .
— Mikko Rantalainen

항상 불합리한 것은 아니며 큰 따옴표는 원하는 작업에 따라 문제가 될 수 있습니다. echo 'For example, I want this to spit out php code.\necho $this->stuff;';
— David Baucum

@DavidBaucum, 나는 이것이 오래된 스레드라는 것을 알고 있지만 자신과이를 우연히 발견 한 다른 사람들 echo "For example, I want this to spit out php code.\necho \$test;";을 위해 참조 할 수 있습니다. 변수를 벗어날 수 있으므로 큰 따옴표로 설명하는 문제를 해결할 수 있습니다.
— Josh Wood

9

PHP에서 작은 VS 큰 따옴표를 사용하는 것에 차이가 있습니다

예 : 1. echo '$var\n'; 2.echo "$var\n";

  • 1에서 PHP는 문자 그대로 인쇄됩니다. $var\n
  • 2에서 PHP는의 위치를 ​​메모리에서 검색하고 해당 위치 $var의 값을 반환해야합니다. 또한 \ n을 줄 바꿈 문자로 구문 분석하고 결과를 인쇄해야합니다

우리는 백만 분의 1 초의 범위에 있지만 성능에는 차이가 있습니다. 가능한 한 작은 따옴표를 사용하는 것이 좋습니다.이 성능 향상을 인식하지 못할 수도 있습니다. 그러나 나는 성능에 관해서 편집증 개발자입니다.


큰 따옴표 솔루션 AKA 게으른 개발자 솔루션을 사용하는 대신이 작업을 수행하는 가장 좋은 방법을 찾으려고 노력해 주셔서 감사합니다.
— linuxdev

내가 원하는 것을 수행하는 가장 좋은 방법은 다음과 같습니다. echo 'foo', "\ n";
— linuxdev

3
가장 빠른 방법은 다음과 같습니다echo $var + "\n";
— Hengjie

2
@Hengjie : 당신은 아마 의미 echo $var . "\n";합니다.
— Skippy le Grand Gourou

@linuxdev :이 답변의 요점을 보지 못했습니다. 1의 출력이 어쨌든 2의 출력과 같지 않기 때문에 (심지어도 가정 $var='$var'), 사과를 오렌지와 비교하지 않습니까?
— Skippy le Grand Gourou

8

작은 따옴표에 사용할 수있는 유일한 이스케이프 시퀀스는 작은 따옴표 자체입니다.

$foo = 'That\'s great';

작은 따옴표로 만든 문자열에 줄 바꿈을 삽입 할 수있는 유일한 방법은 리터럴 줄 바꿈을 삽입하는 것입니다.

$bar = 'That\'s
cheating';

1
다른 답변과 비교하여 가장 쉬운 솔루션입니다.
— Kai Noack

5

아무도 왜 함수를 사용하는 대안을 추가하지 않았는지 궁금합니다 chr().

echo 'Hello World!' . chr(10);

또는 백만 번 반복하면 더 효율적입니다.

define('C_NewLine', chr(10));
...
echo 'Hello World!' . C_NewLine;

이렇게하면 작은 따옴표와 큰 따옴표로 묶은 문자열을 어리석게 보이게하지 않습니다.


1
이것은 가장 예쁘고 보풀이없는 휴대용 솔루션 IMO처럼 보입니다.
— daraul

3

<<< 사용을 고려할 수도 있습니다

예 :

<<<VARIABLE
this is some
random text
that I'm typing 
here and I will end it with the 
same word I started it with
VARIABLE

자세한 정보 : http://php.net/manual/en/language.types.string.php

Btw-일부 코딩 환경은 위의 구문을 처리하는 방법을 모릅니다.


1
아 네 ...하지만 여전히 끝에 VARIABLE이 코드의 모든 들여 쓰기를 중단한다는 사실을 싫어합니다 ... HEREDOC 구문을 사용하여 너무 많은 (멍청한) 오류가 발생했습니다.
— Matt

0

아니,에 따라 문서 , PHP는 작은 따옴표로 특별한 기호를 인식하지 않습니다. 그리고 가능한 한 작은 따옴표를 사용하는 단 하나의 이유가 없다


작은 따옴표를 사용하면 약간의 성능 향상이 있습니다. 또한 변수를 교체 할시기를 명시 적으로 정의하는 것이 좋습니다.
— 잭슨 밀러

4
@Jackson에는 성능 향상 이 없습니다 . 어쨌든. 이 유치한 소문을 잊어 버리십시오. 그리고 아닙니다. 변수가 아니라 특별한 순서에 대해 이야기하십시오. 당신이 확장 될 어떤 순서, 변수 또는 줄 바꿈을하려면 - 따옴표를 사용하여 그것의 목적에 . 그리고 OP가 그것을 목적으로 사용하는 것을 거부하는 것은 말도 안됩니다.
— 당신의 상식

문자열 내에서 변수를 보간하려고 할 때 큰 따옴표를 사용하지 않을 이유는 없습니다. /n줄 바꿈을 위해 이스케이프 처리도 마찬가지입니다 . 그것은 청소기, 더 읽기 쉽게 그리고이 제로 성능 저하.
— 빅터 슈뢰더

0

변수가있는 경우 :

$your_var = 'declare your var';
echo 'i want to show my var here'.$your_var.'<br>';


당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.