-2

私は PHP 開発者で、Ruby スクリプトを PHP に変換していますが、この構文はどこにも見つかりませんでした。それが何を意味するのか理解するのを手伝ってください。

var1 = "" if self.title.match(/(#{var1})/i)
4

2 に答える 2

1

まず、

greeting = "Hello"
puts "#{greeting} world"

--output:--
Hello world

したがって、 #{..} コンストラクトを使用すると、変数を文字列に補間できます。これは、php の $variable 補間を文字列に挿入するよりも冗長ですが、そのようになります。Ruby では、任意の式を文字列に補間することもできます。

puts "1 + 2 = #{1+2}"

--output:--
1 + 2 = 3


def get_greeting
  "Goodbye"
end

puts "#{get_greeting} world"

--output:--
Goodbye world

これがあなたの例です:

title = "HELLO"
var1 = "hello"

var1 = "" if title.match(/(#{var1})/i)
puts "--->#{var1}<--"

--output:--
---><--

...これは次と同等です:

title = "HELLO"
var1 = "hello"

if title.match(/(#{var1})/i)
  var1 = ""
end

puts "--->#{var1}<--"

--output:--
---><--

...これは次と同等です:

title = "HELLO"
var1 = "hello"

if title.match(/(hello)/i)
  var1 = ""
end

puts "--->#{var1}<--"

--output:--
---><--

#{...} コンストラクトを使用して、変数を正規表現に補間できることに注意してください。

于 2013-06-27T08:47:57.170 に答える