PHP에서 Ruby로

PHP는 웹 애플리케이션에 널리 사용되고 있지만 Ruby on Rails를 사용하고 싶거나 일반적인 용도에 더 적합한 언어를 원한다면 Ruby를 살펴볼 가치가 있습니다.

비슷한 점

PHP처럼, Ruby에서도…

  • Ruby는 PHP와 같이 동적 타입을 사용하므로 변수 선언에 대해 걱정할 필요가 없습니다.
  • 클래스가 있으며 PHP 5(public, protected, private)에서와 같이 클래스에 대한 액세스를 제어할 수 있습니다.
  • 일부 변수는 PHP와 동일하게 $로 시작합니다(전부는 아님).
  • eval도 있습니다.
  • 문자열 보간을 사용할 수 있습니다. "$foo is a $bar" 대신 "#{foo} is a #{bar}"를 사용할 수 있습니다. PHP에서와 같이 작은따옴표 문자열에는 적용되지 않습니다.
  • 히어독(heredoc)이 있습니다.
  • Ruby에는 PHP 5처럼 예외가 있습니다.
  • 상당히 큰 표준 라이브러리가 있습니다.
  • 배열 및 해시는 array(){, }로 교환하면 예상대로 작동합니다. array('a' => 'b'){'a' => 'b'}가 됩니다.
  • truefalse는 PHP처럼 동작하지만 nullnil이라고 합니다.

다른 점

PHP와는 다르게, Ruby에서는…

  • 강 타입을 사용합니다. 문자열, 정수 등을 변환하려면 언어에 의존하는 대신 to_s, to_i 등을 호출해야 합니다.
  • 문자열, 숫자, 배열, 해시 등은 객체입니다. abs(-1)을 호출하는 대신 -1.abs입니다.
  • 메서드 호출에서 괄호는 생략 가능합니다. 단, 어떤 매개변수가 어떤 메서드 호출로 이동하는지 명확히 하는 경우는 예외입니다.
  • 표준 라이브러리 및 확장은 모듈 및 클래스로 구성됩니다.
  • 리플렉션은 객체 고유의 기능이므로 PHP 5에서와 같이 Reflection 클래스를 사용할 필요가 없습니다.
  • 변수는 참조입니다.
  • abstract 클래스나 interface가 없습니다.
  • 해시와 배열은 상호 교환할 수 없습니다.
  • falsenil만 거짓입니다. 0, array(), ""는 조건문에서 모두 참입니다.
  • raise(PHP에서는 throw)를 포함하여 거의 모든 것이 메서드 호출입니다.