我在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块中抛出.
提前致谢!
在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)
谢谢.
我有一个类似于下面所示的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]是未定义的.但这不是我需要将元素推入的第一级数组吗?
我有兴趣为我的网站使用visualsearch.js控件,但是,通过阅读文档,我仍然不清楚如何有效地获取输出搜索集合数据.基于该示例,输出字符串通过搜索集合的序列化来构造.但是,我想知道是否有一种方法可以以更像数组的方式访问搜索集合(以便可以使用for/in循环),而不必解析单个序列化字符串.最终,我需要从搜索集合数据构造SQL查询.
如果有更有效或适当的方式来访问搜索集合数据,请告诉我!
谢谢!
我正在通过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)?
在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 ×3
backbone.js ×2
drupal-6 ×2
javascript ×2
if-statement ×1
perl ×1
regex ×1
string ×1
try-catch ×1