레퍼런스로 리턴하기 지 난 칼럼에서는 PHP에서 여러 값을 리턴하기 위해 레퍼런스를 함수의 파라미터로 사용하는 방법에 대해 살펴보았다. 이번 칼럼에서는 레퍼런스를 실제 리턴값으로 사용하는 것에 대해 알아보고 이것이 개발자에게 얼마나 유용한지를 알아 볼 것이다. 이번 기사를 위해 다음과 같은 클래스를 만들었다. 위 코드에서 보다시피 A와 B라는 간단한 두 개의 클래스를 생성했다. 그리고 각각은 printmsg()라는 함수 하나만을 포함하고 있다. 그리고 나서, 각 클래스의 인스턴스를 생성했고 $toobox라 는 배열에 저장을 하였다. 우선 위의 것은 넘어가고, 레퍼런스 함수를 통해 전달하는 것부터 알아보자. 여러 곳에서 레퍼런스 함수에 의한 리턴이 쓰일 수 있지만, 여기서 생성할 함수는 오직 하나의 파라미..
가끔 PHP로 웹페이지를 작성할 일이 있는데, 유용한 팁을 우연히 보게 되어 한글로 옮겨적어본다. 원본은 40 Tips for optimizing your php Code 1. If a method can be static, declare it static. Speed improvement is by a factor of 4. 메쏘드가 static이 될 수 있다면 static으로 선언하라. 4배 빨라진다. 2. echo is faster than print. echo가 print보다 빠르다. 3. Use echo’s multiple parameters instead of string concatenation. 문자열을 이어붙이지 말고, echo를 이용하여 여러 개의 파라미터를 적어라. 4. Set the..
참조 반환하기 참조에 의한 반환하기는 참조에 연결되어 있는 변수를 찾는 함수를 사용할 때 유용합니다. 참조에 의한 반환을 성능을 증가시키기 위해 사용하지 마십시오. 엔진이 스스로 최적화해 줍니다. 참조를 반환하는건 기술적으로 할 필요가 있을 경우에만 하십시오. 참조를 반환하려면, 다음 문법을 사용합니다. 위 예제 코드는 함수 getvalue에 의해 반환하는 객체의 속성을 설정하지만, 참조 문법을 사용하지 않을 때와 같은 복사가 아니다. Note: 인수 전달과 달리, 여기서는 두 군데에서 &을 사용해야 한다 - 보통의 복사가 아니라, 참조에 의해 반환하는 것을 가리킬 때, 그리고 일반적인 지정이 아닌 참조 연결이라는 것을 가리킬때, $myValue에 대해 사용해야 한다. Note: 다음 문법으로 함수에서..
그냥 생각나서 몇가지 실험을 해봤습니다. 참고 정도만 하세요. 1. 문자열내에 변수파싱 속도 2. 함수인자로 값과 레퍼런스를 넘길때 속도 3. 함수 리턴값을 값과 레퍼런스로 넘길때 속도 공통사항 변수는 {'str'.$i} 와 같은 형태로 계속 다른 변수명을 지정합니다. 변수내용에는 $i 를 삽입하여 다른 문자열을 생성 배열의 경우에도 $i 만큼 변동되는 배열생성 unset 함수로 변수파기(메모리땜에 ㅠㅡㅠ) 모든 단위는 초 3회 측정후 시간차가 1초이상 벌어질경우 재측정한후 유사값을 기재. 1. 변수 파싱 테스트--------------------------------------------------------------------- $msg = "message"; $msg1 = "asfdasdf"; $..
프로파일러 시작하기 php.ini 에서 xdebug.profiler_enable 옵션을 1 로 설정하면 xdebug.profiler_output_dir 에 세팅된 디렉토리로 프로파일 데이터가 저장됨. 프로파일 데이터가 저장되는 파일의 이름은 항상 "cachegrind.out." 으로 시작되고 PID나 디버깅되는 스크립트가 들어있는 디렉토리의 crc32 hash 값으로 끝남. 프로파일러를 사용하기 위해선 항상 xdebug.profiler_output_dir 에 지정된 디렉토리의 공간에 신경써야 함. xdebug.profiler_enable_trigger 값을 1 로 설정하면 선택적으로 프로파일러를 실행시킬 수 있음. (GET/POST/COOKIE 값에 변수명을 XDEBUG_PROFILE 로 지정하고 req..