此代码的目的只是配置数据。如果我直接在example.php中使用$config
数组,则一切正常。但是在下面的代码中,我得到了不同的值。
facebook.php
<?php
class Facebook extends AppController{
public function __construct() {
$config = array();
$config['appId'] = '400xxx6'; //YOUR_APP_ID
$config['secret'] = 'f70f01e76xxx7e'; //YOUR_APP_SECRET
$config['cookie'] = false;
return $config;
}
}
?>
使用example.php
<?php
App::import('Config', 'Facebook');
$a = new Facebook();
var_dump($a);
?>
为什么$var_dump($a);
会返回这样的内容?
object(Facebook)[50]
protected 'appId' => null
protected 'apiSecret' => null
protected 'user' => null
protected 'signedRequest' => null
protected 'state' => string 'e4ac55f1xxx87a88' (length=32)
protected 'accessToken' => null
protected 'fileUploadSupport' => boolean false
我想要的是原始阵列。这是什么错误?
array
'appId' => string '400xxx6' (length=15)
'secret' => string 'f70f01e76xxx7e' (length=32)
'cookie' => boolean false
答案 0 :(得分:2)
我很确定你做的时候:
$a = new Facebook();
正在实例化的类不是您创建的类。我相信你使用Facebook PHP SDK,他们的类名也是Facebook
。你的班级名称有冲突。
将您的班级名称更改为其他内容,例如FacebookConfig
,您就可以了。
此外,将数组存储在类实例中会更有意义,例如:
class FacebookConfig extends AppController{
public $config = array();
public function __construct() {
$this->config = array();
$this->config['appId'] = '400xxx6'; //YOUR_APP_ID
$this->config['secret'] = 'f70f01e76xxx7e'; //YOUR_APP_SECRET
$this->config['cookie'] = false;
}
}