PHP __set魔术方法

时间:2015-12-17 17:32:04

标签: php getter-setter

我刚刚看到了这段代码,但我似乎无法理解这个代码的含义:

public function __set($propName, $propValue)
{
    $this->{$propName} = $propValue;
}

$this->{$propName}做了什么?

2 个答案:

答案 0 :(得分:2)

$this->{$propName}访问名为$ propName的属性。如果$propName === 'name'$this->{$propName}$this->name相同。

此处提供更多信息:http://php.net/manual/en/language.variables.variable.php

答案 1 :(得分:1)

花括号使得它们之间的变量被插值。这在各种各样的地方都很有用,但在这个特殊的地方它可以有效地做到这一点:

func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
    var URL: NSURL? = webView.URL
    if URL == nil {
        if let urlString = error.userInfo[NSURLErrorFailingURLStringErrorKey] as? NSString {
            URL = NSURL(string: urlString as String)
        }
    }
    print(URL)
}