小编kas*_*ord的帖子

在PHP Try Catch块中抛出异常

我在Drupal 6 .module文件中有一个PHP函数.我正在尝试在执行更密集的任务(例如数据库查询)之前运行初始变量验证.在C#中,我曾经在我的Try块的开头实现了IF语句,如果验证失败则会抛出新的异常.抛出的异常将在Catch块中捕获.以下是我的PHP代码:

function _modulename_getData($field, $table) {
  try {
    if (empty($field)) {
      throw new Exception("The field is undefined."); 
    }
    // rest of code here...
  }
  catch (Exception $e) {
    throw $e->getMessage();
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试运行代码时,它告诉我对象只能在Catch块中抛出.

提前致谢!

php exception-handling try-catch drupal-6

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

在PHP中初始化空字符串的正确方法是什么?

在C#中,我采用了以下初始化空字符串的方法:

string account = string.empty;
Run Code Online (Sandbox Code Playgroud)

而不是

string account = "";
Run Code Online (Sandbox Code Playgroud)

根据我的导师和我讨论过的其他C#开发人员,第一种方法是更好的做法.

也就是说,有没有更好的方法来初始化PHP中的空字符串?目前,我看到以下广泛使用:

$account = '';
Run Code Online (Sandbox Code Playgroud)

谢谢.

php string initialization

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

使用新的数组元素更新backbone.js模型

我有一个类似于下面所示的backbone.js模型.

Filters = Backbone.Model.extend({
    defaults : {
        title: [ ["title1", "easy"], ["title2", "hard"] ]
    }
});
Run Code Online (Sandbox Code Playgroud)

我正在尝试向第一级数组添加一个元素,这样模型就变成了:

Filters = Backbone.Model.extend({
    defaults : {
        title: [ ["title1", "easy"], ["title2", "hard"], ["title3", "medium"] ]
    }
});
Run Code Online (Sandbox Code Playgroud)

我现在的代码是这样的:

function setFilters() { 
    var options = {};   

    for (var facet in facets) {
        for (var facetKey in facets[facet]) {
            if (!filterExists(facetKey)) {
                options[facetKey] = new Array(new Array(facets[facet][facetKey], "equals"));
            }
            else {
                (filters[facetKey]).push(new Array(facets[facet][facetKey], "equals"));
            }
        }
    }

    filters.set(options);
}
Run Code Online (Sandbox Code Playgroud)

函数filterExists只检查模型中是否存在键"title".当我运行它时,它说过滤器[facetKey]是未定义的.但这不是我需要将元素推入的第一级数组吗?

javascript backbone.js

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

我们如何使用visualsearch.js的输出?

我有兴趣为我的网站使用visualsearch.js控件,但是,通过阅读文档,我仍然不清楚如何有效地获取输出搜索集合数据.基于该示例,输出字符串通过搜索集合的序列化来构造.但是,我想知道是否有一种方法可以以更像数组的方式访问搜索集合(以便可以使用for/in循环),而不必解析单个序列化字符串.最终,我需要从搜索集合数据构造SQL查询.

如果有更有效或适当的方式来访问搜索集合数据,请告诉我!

谢谢!

javascript backbone.js

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

来自IF语句正则表达式匹配的值(Perl)

我正在通过REGEX行匹配表行从文件中的表中提取值.

foreach my $line (split("\n", $file)) {
    if ($line =~ /^(\S+)\s*(\S+)\s*(\S+)$/) {
        my ($val1, $val2, $val3) = ($1, $2, $3);

        # $val's used here
    }
}
Run Code Online (Sandbox Code Playgroud)

为了清晰起见,我故意在代码中指定val.我的一些表行包含10个以上的val(也就是列) - 是否有更有效的方法来分配val而不是执行... =($ 1,$ 2,...,$ n)?

regex perl if-statement

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

无法访问全局PHP数组变量

在Drupal模块回调函数中,有一个简单的自定义函数可以进入数组.

当我在Drupal模块回调函数中定义输入数组时,自定义函数正确执行.但是,当我在根级别(全局)定义输入数组时,Drupal模块回调函数中的自定义函数将失败.

作为测试,我使自定义函数只是将输入数组的内容输出为字符串.第一种方法正确输出,而第二种方法没有任何输出.理想情况下,我想在全局级别定义数组,以便其他函数可以使用它.

思考?

<?php

// ** Placement of array for method 2
$mapping = array(
    0 => "name",
    1 => "match"
);

function mymodule_menu() {
    $items = array();

    $items['mymodule'] = array(
        'title' => 'MyModule',
        'page callback' => 'myModule_main',
        'access callback' => TRUE,
        'type' => MENU_NORMAL_ITEM
    );

    return $items;
}

function myModule_main() {

    // ** Placement of array for method 1
    $mapping = array(
        0 => "name",
        1 => "match"
    );

    $output = myFunction($mapping);

    echo $output; // ** Returned to …
Run Code Online (Sandbox Code Playgroud)

php global-variables drupal-6

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