2010-03-05 5 views
0

PHP가 어떻게 실행하는지 알고 싶었습니다. 작업 순서PHP 운영 순서

addslashes(strip_tags($record['value'])); 

첫째 또는 strip_tags라고하는 addslashes가 있습니까?

즉 바깥 쪽에서 또는 바깥 쪽에서 실행됩니까?

+0

동의어, 그렇게해서는 안됩니다. addslashes는 더 이상 사용되지 않으며이 장소에 있으면 안됩니다. –

+0

조금 더 설명해 주시겠습니까? 나는 당신이 말하는 것을 얻지 못합니다. Thnx –

+0

mysql을 사용한다면 addslashes() 대신 mysql_real_escape_string()을 사용해야한다. 또한 입력 유효성 검사 단계에서는 사용하지 말고 쿼리 구성에서 사용해야합니다. –

답변

10

내부에서.

PHP에서 함수로 전달되는 것을 "표현식"이라고합니다. 표현식을 매개 변수로 전달할 때 실제로 전달하는 것은 해당 표현식의 값입니다. 이를 수행하기 위해 표현식이 전달되기 전에 평가됩니다.

표현식에 대한 자세한 내용은 php manual입니다.

+0

나는 이것에 대한 문서를 찾고 있었는데, 뭐라 구요? 진 : 감사합니다 :) –

+0

자세한 내용과 링크를 추가하기 위해 편집 됨. –

5

strip_tags가 먼저 호출됩니다.

이 경우는 PHP에서만 발생하는 것이 아니라 모든 다른 프로그래밍 언어 (일부 고유 한 평가 순서가있는 일부 모호한 언어 제외)의 경우입니다.

추신 : 여기에 몇 가지 문서가 있습니다 : PEDMAS. 이것이 프로그래밍 언어에서 이러한 종류의 평가 순서에 영감을주었습니다.

1

논리적으로 생각하면 함수를 실행하기 위해 PHP가 무엇이 필요합니까? 변수. 따라서 strip_tags은 기능을 실행하고 태그를 제거하기 전에 $record['value']을 입력해야합니다. 이 함수는 값을 반환합니다.

이제 addslahes에도 변수가 필요합니다. 그것은 함수에서 실행할 수 없으며, 내부에서 그 함수가 처리 할 수있는 어떤 것을 반환해야합니다. 그래서 그것의 변수로 strip_tags에서 그 반환 값을 사용하고 실행합니다.

+0

이것은 예제 질문이지만 thnx –

0

addslashes은 하나의 인수를 취합니다. 귀하의 경우에는 strip_tags($record['value'])입니다. addslashes 인수가 해결되지 않은 경우 호출 할 수 없습니다.

그러므로 strip_tags을 먼저 호출해야합니다. 거의 모든 인기있는 프로그래밍 언어가 이에 해당합니다. 나는 이것을 알기 전에 어떻게 당신이 그럭저럭 얻을 수 있었는지에 관해 궁금하게 생각한다!