小编Joh*_*ohn的帖子

__set/__获取数组属性

想知道是否可以执行以下操作(我知道代码不会按预期工作,只是试图达到目的):

class Form
{
    private $v = array();

    function __set($varName, $varValue)
    {
        ... do some treatment on the varValue ...
        $this->v[$varName] = $varValue;
    }

    function &__get($varName)
    {
        if(!isset($this->v[$varName]))
            $this->v[$varName] = NULL;

        return $this->v[$varName];
    }
};
Run Code Online (Sandbox Code Playgroud)

我希望能够设置一个变量:

$form->Values['whatever'] = 'dirty';

并让它运行setter函数,它将调用一些清理操作,并实际上最终填充其他几个数组,如'HtmlValues'和'SqlValues',所以我可以拉出编码为我想要的格式的值,所以我以后可以调用

echo $form->HtmlValues['whatever'];

问题当然是正常的问题,如果你只是使用_ get,你最终会设置一个返回的值,即使& _get通过引用返回它并做了一些工作,__ set实际上从未被调用,即使你'设置一个私人会员.

所以基本上,我想知道是否有一种方法可以在数组中设置函数时调用一个函数(可能是多个数组深,哪些不喜欢 $form->Values['group']['item'] = 'whatever';

期望的输出将是这样的:

$form->Values['name'] = "&";
echo $form->HtmlValues['name']; = &
Run Code Online (Sandbox Code Playgroud)

(只是为了强化,我不是在寻找实际的编码,只是能够在每个变量上调用它,因为它的设置/更改无需手动编码整个数组)

php

6
推荐指数
1
解决办法
5177
查看次数

变量不是类的静态成员

我正在开发一个GameKitHelper类,它主要用C++编写,但在某些地方使用Objective-C,在.mm文件中.

我删除了一些功能来隔离错误:

void GameKitHelper::PopulateFriendScores(DynArray<GameCenterScore> *FriendScores)
{
    GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
    if (leaderboardRequest != nil)
    {
        leaderboardRequest.playerScope = GKLeaderboardPlayerScopeFriendsOnly;
        leaderboardRequest.timeScope = GKLeaderboardTimeScopeAllTime;
        leaderboardRequest.range = NSMakeRange(1,25);

        [leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) 
         {
             int i = 0;
             printf("%d", i);
         }];
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

'int GameKitHelper::i' is not a static member of 'class GameKitHelper'
Run Code Online (Sandbox Code Playgroud)

objective-c objective-c++ ios

2
推荐指数
1
解决办法
1374
查看次数

标签 统计

ios ×1

objective-c ×1

objective-c++ ×1

php ×1