-1

我正在寻找创建一个类来从雅虎数据源中提取信息。雅虎很好地提供了以下数据图:

http://code.google.com/p/yahoo-finance-managed/wiki/enumQuoteProperty

我想创建一个允许我引用属性名称并显示代码的类。实现此目的的适当方法是什么?

我正在考虑在我的数据模型类中创建一个公共函数并在其中创建一个关联数组。这是最佳实践吗?我想我正在寻找相当于 C++ 结构的 PHP。

谢谢!

4

2 回答 2

1

最接近结构的东西是 php 对象。

http://www.php.net/manual/en/language.types.object.php

使用对象只需创建一些成员变量。

如果您不想要大量成员变量,只需创建一个成员变量(数组)并使用魔术方法 __get($k) 和 __set($k, $v)。

class foo {
    protected $vars = array();

    public function __get($k) {
        if (isset($this->vars[$k]))
            return $this->vars[$k];
    }

    public function __set($k, $v) {
        return $this->vars[$k] = $v;
    }
}
于 2012-11-23T15:52:30.373 回答
0

在我看来,无论数量多少,类常量仍然是更好的方法。

class MyClass {
    const AfterHoursChangeRealtime = 'c8';
    const AnnualizedGain = 'g3';
    //[...]
}

但是,如果您想避免声明大量常量或简单地使用更好的访问方式,则可以将静态 var 与数组一起使用。

作为静态它是一个类变量,并且将消耗更少的内存并具有更快的访问速度,因为它不会在每个对象上复制它的值。

class MyClass {
    static $enum = array(
        'AfterHoursChangeRealtime' => 'c8',
        'AnnualizedGain' => 'g3'
    );
    //[...]
}
于 2012-11-23T16:04:49.337 回答