来自__construct()的错误数组值

时间:2012-08-09 18:17:53

标签: php facebook

此代码的目的只是配置数据。如果我直接在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

1 个答案:

答案 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;
    }
}