php 7.x 문법이 알쏭달쏭 채택완료

<?=md5('<?=$encKeyCode?>' . $timestamp); ?>  라는 내용이 있습니다.

이것을 php 7.x 에 적합한 문법으로 변경하려 하는데...

 

1. <?php echo md5('<?=$encKeyCode?>' . $timestamp); ?>

2. <?php echo md5('<?=$encKeyCode; ?>' . $timestamp); ?>

3. <?php echo md5('<?php echo $encKeyCode; ?>' . $timestamp); ?>

4. <?php echo md5('{$encKeyCode}' . $timestamp); ?>

 

어디까지 사용해도 되는걸까요?

답변 4개

채택된 답변
+20 포인트

변수로 인수를 넘기는데 따옴표로 감쌀 이유가 없습니다.

값이 넘어가더라도 $timestamp 이거 하나만 넘어갑니다.

md5($encKeyCode.$timestamp);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다. 간단하게 생각하면 되는것였네요 ^^

댓글을 작성하려면 로그인이 필요합니다.

<?=md5('<?=$encKeyCode?>' . $timestamp); ?> 

이문법 자체가 오류입니다.

 

PHP 코드를 명시하는 내용안에 또다시 PHP코드를 명시하면 에러발생합니다.

 

따라서 4번만 정상적일겁니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

1,2,3,4번다 따옴표로인해 문자열 취급되어서 다 에러는 발생이 안합니다
다만 $encKeyCode가 변수라면 md5에 값을 전혀 넣지못하죠
@Policia
그렇게 될수도있군요

아무리 잘 된다고하더라도
<?php 코드 내부에 <?php 라..는것은 매우 오류를 생산하는 코딩방식으로 보입니다.

문자열로 막으면 된다는것은 저도 테스트해봐야겠네요
감사합니다.
그쵸.. 저도 처음엔 <?php 선언이 두번된걸 지적할려고했으나
보니깐 에초에 문자열이더군요 문자열이면 선언이 된건아니니깐요..
질문자가 문자열로 처리할 생각이었다면 4번과 같은 예시는 나올 수 없었겠다는 생각이네요. 질문자의 의도를 정확히 알 수 없어 조심스럽지만요.
php 5 에서는 작동하는 코드인데,
php 7 로 이전을 하다보니 ...
댓글 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

<?php echo md5($encKeyCode . $timestamp); ?>  속편하게..  1~3번은 오류 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

php 5 에서 느슨한 문법에서는 오류는 아니지만
php 7 에서는 오류인거지요. 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

음 전 다른건 모르겠고 echo안에 echo들어간걸 안좋아해서 4번밖에안보이네요

아니 그전에...

 

$encKeyCode는 변수아닌가요?

1,2,3,4번다 저렇게 사용하시면 문자열로 취급되어서 '<?=$encKeyCode; ?>'는 그냥 각각의 문자열($encKeyCode의 값이아닌)을 md5화 시키는거 아닌가요?

거기에 타임스탬프 찍는 정도일것같은데욥..

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다. 무척 간단한 문제였군요. ^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고