use DateTime::Format::Natural;
$parser = new DateTime::Format::Natural;
$dt = $parser->parse_datetime("1 Test 2010");
print "Date: " . ($dt->dmy('/') if $parser->success);
왜 마지막 줄이 컴파일되지 않습니까?if 문을 string으로 연결하는 방법?
use DateTime::Format::Natural;
$parser = new DateTime::Format::Natural;
$dt = $parser->parse_datetime("1 Test 2010");
print "Date: " . ($dt->dmy('/') if $parser->success);
왜 마지막 줄이 컴파일되지 않습니까?if 문을 string으로 연결하는 방법?
if
의 형식이 명령문 한정자이기 때문에 컴파일되지 않습니다. 표현식의 끝 부분에서만 사용할 수 있으며 표현식의 다른 부분에서는 사용할 수 없습니다.
print "Date: " . ($parser->success ? $dt->dmy('/') : '');
또는 :
당신은 할 수
print "Date: " . do { $dt->dmy('/') if $parser->success };
(후자가 거짓이면 $ parser->의 성공을 인쇄하려고합니다, 그리고 그것을 인쇄 할 수 있지만 "날짜 : 0 ").
아마도 여기에 삼항 연산자를 사용합니까?
print 'Date: ' . ($parser->success ? $dt->dmy('/') : '');
또는 코드를 두 문장으로 나눕니다.
print 'Date: ';
print $dt->dmy('/') if $parser->success;
친절하게 대답을 수락하여 질문을 닫습니다. 참조 : http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –