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