小编Don*_*eba的帖子

是否可以获取已定义的命名空间列表

嗨,您好,

我想知道是否有一种方法在php 5.3+中获取应用程序中定义的命名空间列表.所以

如果 file 1 has namespace FOOfile 2 has namespace BAR

现在,如果我在文件3中包含文件1和文件2,就像知道某种函数调用那样加载了命名空间FOO和BAR.

我想实现这一点,以确保在检查类是否存在(使用is_callable)之前,我的应用程序中的模块已加载.

如果这是不可能的,我想知道是否有一个函数来检查是否定义了特定的命名空间,如is_namespace().

希望你明白这个主意.而我正在努力实现的目标

php namespaces

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

为什么Javascript具有特权功能

在工作中讨论之后,我仍然没有对以下内容有满意的答案,在其他编程语言中我们都没有谈到特权函数.

var kid = function(name)
{
    // Private
    var idol = "Paris Hilton";

    // Privileged
    this.get_idol = function()
    {
        return idol;
    };
}
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一逻辑是,如果你让一个公共函数返回一个私有变量,那么这个函数是"特权"来执行此操作(因为你不能直接调用它).

我们可以在php中做同样的事情,但我们不使用这个花哨的名字,也不能使用这个术语回忆任何其他语言.

你甚至可能会发现,如果你需要一个"特权"功能,你的整个方法都是错误的,因为如果你需要它可以从外部访问,为什么不直接公开它.

另一方面,私有变量不能从外部改变,因此它将受到保护.但显示在外面.

最后,作为普通javascript的一个新手,这个词有点令人困惑,imho只是一个奇特的名字,使它更混乱,因为然后在PHP它也会变得像javascript:

class kid
{
    // Private
    private idol = "Paris Hilton";

    // PUBLIC OR PRIVILEGED ? 
    public function get_idol()
    {
        echo $this->idol;
    }
}
Run Code Online (Sandbox Code Playgroud)

它做的相同,但只是一个公共方法.

javascript

9
推荐指数
3
解决办法
3782
查看次数

Golang隐藏XML父标记(如果为空)

经过一些追踪和错误,我想分享我正在处理的问题.

我正在填充结构并将其转换为XML(xml.Marshal)如下所示,Foo示例按预期工作.但是Bar示例创建了一个空group1.

所以我的问题是:"如果没有设置子代,我如何防止生成Group1."

package main

import (
    "fmt"
    "encoding/xml"
)

type Example1 struct{
    XMLName  xml.Name `xml:"Example1"`
    Element1 string   `xml:"Group1>Element1,omitempty"`
    Element2 string   `xml:"Group1>Element2,omitempty"`
    Element3 string   `xml:"Group2>Example3,omitempty"`
}

func main() {
    foo := &Example1{}
    foo.Element1 = "Value1" 
    foo.Element2 = "Value2" 
    foo.Element3 = "Value3" 

    fooOut, _ := xml.Marshal(foo)
    fmt.Println( string(fooOut) )

    bar  := &Example1{}
    bar.Element3 = "Value3"
    barOut, _ := xml.Marshal(bar)
    fmt.Println( string(barOut) )
}
Run Code Online (Sandbox Code Playgroud)

Foo输出:

<Example1>
    <Group1>
        <Element1>Value1</Element1>
        <Element2>Value2</Element2>
    </Group1>
    <Group2>
        <Example3>Value3</Example3>
    </Group2>
</Example1>
Run Code Online (Sandbox Code Playgroud)

条形输出:

<Example1>
    <Group1></Group1>  <------ How to remove the …
Run Code Online (Sandbox Code Playgroud)

xml marshalling go

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

防止SQL注入

问题1:

我有下面的MySQL查询工作正常但我刚刚发现这不是一个安全的方法,因为它开放的SQL注入.如果我想作为参数传递,你可以看到where子句是一个问题.

_, err := dbmap.Select(&response.AppsData, "SELECT...", ?)
Run Code Online (Sandbox Code Playgroud)

任何建议很多appriciated.

where := ""

for i := 0; i < (len(acl_user_apps)); i++ {
    fmt.Println(acl_user_apps[i].AppId)
    fmt.Println(acl_user_apps[i].Permissions)

    if where == "" {
        where = "WHERE Apps.id=" + strconv.Itoa(acl_user_apps[i].AppId)
    } else {
        where = where + " OR Apps.id=" + strconv.Itoa(acl_user_apps[i].AppId)
    }
}

query := "SELECT Apps.*, GROUP_CONCAT(DISTINCT IFNULL(AppCategoryMatches.category_id,'-1') SEPARATOR ',') as temp,   GROUP_CONCAT(DISTINCT IFNULL(AppCategories.category_name,'-1') SEPARATOR ',') as tmp_name FROM Apps LEFT JOIN AppCategoryMatches ON AppCategoryMatches.app_id=Apps.id LEFT JOIN AppCategories ON (AppCategoryMatches.`category_id` = AppCategories.id) " + …
Run Code Online (Sandbox Code Playgroud)

mysql go gorp

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

标签 统计

go ×2

gorp ×1

javascript ×1

marshalling ×1

mysql ×1

namespaces ×1

php ×1

xml ×1