0

这段代码的目的只是分离配置数据。如果我$config直接在 example.php 中使用该数组,则一切正常。但是在下面的代码中,我得到了不同的值。

脸书.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;
        }
    }
    ?>

例子.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
4

1 回答 1

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;
    }
}
于 2012-08-09T18:25:05.473 回答