小编Dar*_*yer的帖子

json_decode()期望参数1为字符串,给定数组

是什么导致我的代码错误?

$query = $this->db->query("SELECT * FROM tour_foreign ORDER BY id desc");
        $data = array();
        foreach ($query->result() as $row)
            $data[] = array('guide' => $row->guide);

            echo json_decode($data); //Line 167
Run Code Online (Sandbox Code Playgroud)

错误:

erro: json_decode() expects parameter 1 to be string, array given: Line Number: 167
Run Code Online (Sandbox Code Playgroud)

更新:

如果使用json_encode,而不是json_decode我的输出是这样的:

[{"guide":["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":["\u0633\u06c??c\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":null}]
Run Code Online (Sandbox Code Playgroud)

他们是波斯语.

php json

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

如何防止'超级'屈服

我有一个类,Duck有一个initialize方法,产生一个块:

class Duck
  def initialize()
    if block_given?
      yield(self)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

和一个TalkingDuck在程序员初始化时问候程序的类.

class TalkingDuck < Duck
  def initialize()
    super()
    puts 'I am a duck'
  end
end
Run Code Online (Sandbox Code Playgroud)

当我TalkingDuck.new用块调用构造函数时,我不希望执行此块.这个:

TalkingDuck.new { puts 'Quack' }
Run Code Online (Sandbox Code Playgroud)

应该只打印I am a duck,但不能打印Quack.如何防止块被执行?

ruby

7
推荐指数
1
解决办法
225
查看次数

如何去混淆 Lua 脚本?

我有一些我怀疑被混淆的 Lua 代码。我该如何去混淆它?

我相信代码被混淆了,因为它看起来与普通的 Lua 代码非常不同,但我知道它是有效的 Lua 代码,因为 Lua 解释器仍然会编译和运行代码。

我对去混淆代码有合法的兴趣,并且不打算违背作者的意愿分发它或修改它以规避任何 DRM 机制。

obfuscation lua deobfuscation

5
推荐指数
1
解决办法
2439
查看次数

动态定义LUA功能的正确方法

在过去的一周中,我一直在和Lua一起玩,最终我写出了这种平和的代码。我发现动态创建“继承”其他功能的新功能非常有用,因此程序员必须为其命名。我的问题是:

这个叫什么?

有一个更好的方法吗?(遍历数据结构并创建“改进”现有功能的附加功能)

D = {
  name = {
    value = nil,
    offset = 0,
    update = function (self)
      self.value = "Berlin"
    end,
  },
}

--Dynamic function definition
for i in pairs(D) do
  D[i].upAndWrite = function(self)
    self:update()
    print("upAndWrite was here")
  end
end

print(D.name.value)
D.name:upAndWrite()
print(D.name.value)
Run Code Online (Sandbox Code Playgroud)

结果:

nil
upAndWrite was here
Berlin
Run Code Online (Sandbox Code Playgroud)

lua metaprogramming function

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

Lua 函数 .. 可选表

如何在可选的 lua 函数中传递表。

例如

function test(options)
   local a = options.a
end
Run Code Online (Sandbox Code Playgroud)

这个功能应该同时工作

test(options)
Run Code Online (Sandbox Code Playgroud)

test()
Run Code Online (Sandbox Code Playgroud)

lua function

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

为什么没有对象的`()`运算符?

Ruby中的Lambdas(和procs)只是带有call方法的对象,就像任何OO语言一样,函数式编程作为事后的想法粘在上面.还有:

  • lambda.(<args>)
  • lambda[<args>]

作为语法糖lambda.call().

Lua允许一个__callmeta方法,它允许我调用一个对象,在后台,参数(和表)被传递给一个真正的函数来完成真正的魔术.

Lambdas不喜欢处理真正的函数,因为它们被调用[].()代替().为什么不添加()可以重载的运算符?然后object()将被转换为意味着object.(),同样的与+,||或任何其他操作.

拥有允许直接调用lambda的语法糖是不是有意义?这更像是设计哲学而非技术限制吗?

解决人们提出的一些"问题"(这不是真正的问题):

如果一个方法返回一个lambda,那个方法后跟()的意思是什么?它只调用方法,还是调用返回的lambda?

method()意味着呼叫method.如果该表达式返回一个lambda,method()()则会调用所述lambda.相反的情况根本就没有意义.

如果有一个名为foo的方法,以及一个名为foo的可调用对象,那么foo()是什么意思?

答:如果foo是一个方法和一个变量,你期望foo评估什么?变量.Ruby已经通过简单地选择更直观的两个选项来处理这种模糊性.因此,如果有方法foo,foo()应该调用该方法.如果foo在同一范围内存在可调用方法,则会被实际函数遮蔽.

ruby lambda functional-programming

0
推荐指数
1
解决办法
89
查看次数

lua:15: '[' 附近有意外的符号

我正在尝试编写一个函数来创建 CNN 模型。每当我运行脚本时,我都会收到以下错误:

lua:15: '[' 附近有意外的符号

require('torch')

require('nn')

function CeateNvidiaModel()

    --The Nvidia model
    --Input dimensions
    local n_channels = 3
    local height = 66
    local width = 200
    local nvidia_model = nn.Sequential();
    --nvida_model:add(nn.Normalize()
    --Convolutional Layers
    nvidia_model:add(nn.SpatialConvolution(n_channels, 24, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(24, 36, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(36, 48, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(48, 64, 3, 3))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(64, 64, 3, 3))
    nvidia_model:add(nn.ELU(true))
    -- Flatten Layer
    nvidia_model:add(nn.Reshape(1164))
    -- FC Layers
    nvida_model:add(nn.Linear(1164, 100))
    nvidia_model:add(nn.ELU(true))
    nvida_model:add(nn.Linear(100, 50))
    nvidia_model:add(nn.ELU(true))
    nvida_model:add(nn.Linear(50, 10)) …
Run Code Online (Sandbox Code Playgroud)

lua torch

0
推荐指数
1
解决办法
3796
查看次数