我是 php 开发人员,将 ruby 脚本转换为 PHP,我在任何地方都找不到这种语法。请帮助我理解它的含义。
var1 = "" if self.title.match(/(#{var1})/i)
我是 php 开发人员,将 ruby 脚本转换为 PHP,我在任何地方都找不到这种语法。请帮助我理解它的含义。
var1 = "" if self.title.match(/(#{var1})/i)
首先,
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:--
---><--
请注意,您可以使用 #{...} 构造将变量插入到正则表达式中。
这意味着""
如果self.title
匹配由 插值的正则表达式,它应该返回一个空字符串#{var1}
,这/i
意味着它不区分大小写。