0

我有一个接受OAuth 对象的函数:

$oauth = new OAuth("abc","def",OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);

function get_oauth_header($oauth, $header)
{
    if ( !is_string($header) ) {
        return NULL;
    }

    $result_headers = explode("\r\n", $oauth->getLastResponseHeaders());
    // Do something interesting....
}

我想在函数顶部添加一个检查,以确保只有有效的 OAuth 对象被传递给函数,就像$header检查变量是否为字符串一样。我该如何检查这个?我试图输出 OAuth 对象的类型,gettype()但它返回0.

4

1 回答 1

1

PHP5 引入了一个可以帮助您的特性:类型提示。您可以使用它来要求某些参数是某个类的实例。

function get_oauth_header(OAuth $oauth, $header) {
    // ...
}

请注意,如果传递的 $oauth 不是OAuth.

作为替代方案,您在正确的轨道上使用gettype(),但这只会报告 PHP 的内部类型。你在这里需要的是instanceofor get_class()

var_dump($oauth instanceof OAuth); // true
var_dump(get_class($oauth) === 'OAuth'); // true
于 2013-06-18T07:40:26.483 回答