标签: scope

在PHP中的对象上使用json_encode(无论范围如何)

我正在尝试输出对象列表作为json,并想知道是否有一种方法可以使对象可用json_encode?我得到的代码看起来像

$related = $user->getRelatedUsers();
echo json_encode($related);
Run Code Online (Sandbox Code Playgroud)

现在,我只是遍历用户数组并单独将它们导出到数组中,json_encode以便为我变成可用的json.我已经尝试使对象可迭代,但json_encode似乎只是跳过它们.

编辑:这是var_dump();

php > var_dump($a);
object(RedBean_OODBBean)#14 (2) {
  ["properties":"RedBean_OODBBean":private]=>
  array(11) {
    ["id"]=>
    string(5) "17972"
    ["pk_UniversalID"]=>
    string(5) "18830"
    ["UniversalIdentity"]=>
    string(1) "1"
    ["UniversalUserName"]=>
    string(9) "showforce"
    ["UniversalPassword"]=>
    string(32) ""
    ["UniversalDomain"]=>
    string(1) "0"
    ["UniversalCrunchBase"]=>
    string(1) "0"
    ["isApproved"]=>
    string(1) "0"
    ["accountHash"]=>
    string(32) ""
    ["CurrentEvent"]=>
    string(4) "1204"
    ["userType"]=>
    string(7) "company"
  }
  ["__info":"RedBean_OODBBean":private]=>
  array(4) {
    ["type"]=>
    string(4) "user"
    ["sys"]=>
    array(1) {
      ["idfield"]=>
      string(2) "id"
    }
    ["tainted"]=>
    bool(false)
    ["model"]=>
    object(Model_User)#16 (1) {
      ["bean":protected]=>
      *RECURSION*
    } …
Run Code Online (Sandbox Code Playgroud)

php json scope redbean

72
推荐指数
4
解决办法
11万
查看次数

TensorFlow中variable_scope和name_scope之间的区别

variable_scope和之间有什么区别name_scope?该变量的作用域教程挂在嘴边variable_scope隐含打开name_scope.我还注意到,在a中创建变量也会name_scope自动扩展其名称以及作用域名称.那么区别是什么呢?

python scope tensorflow

71
推荐指数
2
解决办法
2万
查看次数

如果没有默认构造函数,为什么不编译?

我可以做这个:

#include <iostream>

int counter;

int main()
{
    struct Boo
    {
        Boo(int num)
        {
            ++counter;
            if (rand() % num < 7) Boo(8);
        }
    };

    Boo(8);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这将编译正常,我的计数器结果是21.但是,当我尝试创建Boo传递构造函数参数而不是整数文字的对象时,我得到一个编译错误:

#include <iostream>

int counter;

int main()
{
    struct Boo
    {
        Boo(int num)
        {
            ++counter;
            if (rand() % num < 7) Boo(num); // No default constructor 
                                            // exists for Boo
        }
    };

    Boo(8);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何在第二个示例中调用默认构造函数,而不是在第一个示例中调用?这是我在Visual Studio 2017上遇到的错误.

在线C++编译器onlineGDB我得到错误:

error: no matching function for call to ‘main()::Boo::Boo()’ …
Run Code Online (Sandbox Code Playgroud)

c++ constructor scope default-constructor most-vexing-parse

70
推荐指数
2
解决办法
5193
查看次数

让我的函数访问外部变量

我外面有一个阵列:

$myArr = array();
Run Code Online (Sandbox Code Playgroud)

我想让我的函数访问它外面的数组,以便它可以为它添加值

function someFuntion(){
    $myVal = //some processing here to determine value of $myVal
    $myArr[] = $myVal;
}
Run Code Online (Sandbox Code Playgroud)

如何为函数提供正确的范围?

php scope function

69
推荐指数
4
解决办法
9万
查看次数

将变量从一个php包含文件传递到另一个:global与not

我正在尝试将变量从一个包含文件传递到另一个包含文件.除非我在第二个包含文件中将变量声明为全局变量,否则这不起作用.但是,我不需要在调用第一个include的文件中将其声明为全局.例如:


front.inc:

$name = 'james';
Run Code Online (Sandbox Code Playgroud)

index.php文件:

include('front.inc');
echo $name;
include('end.inc');
Run Code Online (Sandbox Code Playgroud)

输出:詹姆斯


end.inc:

echo $name;
Run Code Online (Sandbox Code Playgroud)

输出:没什么


如果我在end.inc中回显$ name之前声明全局$ name,那么它可以正常工作.这篇文章接受的答案解释了这取决于您的服务器配置:将PHP中的变量从一个文件传递到另一个文件

我正在使用Apache服务器.我如何配置它以便声明$ name是全局的?一个与另一个有优点/缺点吗?

php variables scope global include

69
推荐指数
2
解决办法
17万
查看次数

为什么嵌套函数可以从外部函数访问变量,但不允许修改它们

在下面的第二种情况下,Python试图寻找一个局部变量.当它没有找到一个时,为什么它不能像在第一种情况下那样在外部范围内看?

这在本地范围内查找x,然后在外部范围内查找:

def f1():
    x = 5
    def f2():
         print x
Run Code Online (Sandbox Code Playgroud)

这给出了local variable 'x' referenced before assignment错误:

def f1():
    x = 5
    def f2():
        x+=1
Run Code Online (Sandbox Code Playgroud)

我不允许修改函数f2()的签名,所以我不能传递和返回x的值.但是,我确实需要一种方法来修改x.有没有办法明确告诉Python在外部范围内查找变量名称(类似于global关键字)?

Python版本:2.7

python scope

69
推荐指数
2
解决办法
3万
查看次数

为什么块范围最初并未在JavaScript中实现?

我已阅读并通过自己的经验发现JavaScript没有块范围.假设语言是出于某种原因而设计的,那是什么原因?

我在谷歌和周围环顾四周,但我发现的帖子只是重申JS有功能范围而不是阻止范围,没有解释原因.我很想知道为什么会出现这种情况.

javascript scope

69
推荐指数
3
解决办法
1万
查看次数

如何从angular.js数组中删除元素/节点

我试图从数组中删除元素,$scope.items以便在视图中删除项目ng-repeat="item in items"

仅出于演示目的,这里有一些代码:

for(i=0;i<$scope.items.length;i++){
    if($scope.items[i].name == 'ted'){
      $scope.items.shift();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有名称ted,我想从视图中删除第一个元素?它工作正常,但视图重新加载所有元素.因为所有数组键都已移位.这在我创建的移动应用程序中造成了不必要的延迟.

任何人都有这个问题的解决方案?

scope angularjs angularjs-ng-repeat

69
推荐指数
7
解决办法
26万
查看次数

从装饰师访问自己

在unittest的setUp()方法中,我设置了一些变量,稍后在实际测试中引用.我还创建了一个装饰器来做一些日志记录.有没有办法可以从装饰器访问这些变量?

为简单起见,我发布此代码:

def decorator(func):
    def _decorator(*args, **kwargs):
        # access a from TestSample
        func(*args, **kwargs)
    return _decorator

class TestSample(unittest.TestCase):    
    def setUp(self):
        self.a = 10

    def tearDown(self):
        # tear down code

    @decorator
    def test_a(self):
        # testing code goes here
Run Code Online (Sandbox Code Playgroud)

什么是访问的最好办法一个从装饰(()在设置中设定)?

python unit-testing scope

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

Angular $ scope.$ apply vs $ timeout作为安全$ apply

我试图更好地理解在Angular中使用$ timeout服务作为一种"安全$ apply"方法的细微差别.基本上在一段代码可以响应Angular事件或非角度事件(如jQuery或某些标准DOM事件)运行的场景中.

据我所知:

  1. 在$ scope中包装代码.$ apply适用于您尚未处于摘要循环(即.jQuery事件)的情况,但如果正在进行摘要,则会引发错误
  2. 在没有延迟参数的$ timeout()调用中包装代码,无论是否已经在摘要周期中都有效

看看Angular源代码,看起来$ timeout会调用$ rootScope.$ apply().

  1. 如果摘要周期已在进行中,为什么$ timeout()也不会引发错误?
  2. 最好的做法是使用$ scope.$ apply()当你确定一个摘要不会在进行中时和$ timeout()当需要它是安全的时候?
  3. $ timeout()真的是一个可以接受的"安全申请",还是有问题?

感谢您的任何见解.

scope angularjs

68
推荐指数
2
解决办法
3万
查看次数