相关疑难解决方法(0)

Graphviz:如何从.dot转到图表?

我似乎无法弄清楚这一点.我有一个.dot文件,根据语法有效.如何使用graphviz将其转换为图像?

(注意我在Windows上,而不是linux)

windows dot graphviz

394
推荐指数
9
解决办法
39万
查看次数

在数组迭代期间检查,如果当前元素是最后一个元素

请帮我把这个伪代码翻译成真正的PHP代码:

 foreach ($arr as $k => $v)
    if ( THIS IS NOT THE LAST ELEMENT IN THE ARRAY)
        doSomething();
Run Code Online (Sandbox Code Playgroud)

编辑:数组可能有数字或字符串键

php arrays

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

测试中的软件故障是什么?

我正在参加软件测试的毕业班,我们花了整整一堂课来研究故障,错误和失败之间的区别.我对测试中软件故障的定义不满意.你的定义是什么?

testing

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

为什么我得到"只有变量应该通过引用传递"错误?

看看这段代码:

$last = end($p = explode('/', $someString));  
Run Code Online (Sandbox Code Playgroud)

得到这个通知:

只应通过引用传递变量

我真的很困惑,因为它$p是一个变量.

php variables pass-by-reference

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

PHP:为什么带括号的周围函数调用会阻止"通过引用传递"通知?

我一直在寻找这个,但只发现了"这是一个有效的技巧"的行,但从来没有解释过.

在以下代码中:

error_reporting(-1);
ini_set("display_errors", 1);
end(array_flip($_GET));
end((array_flip($_GET)));
Run Code Online (Sandbox Code Playgroud)

第一次打电话end()通知结果:

严格的标准:只有变量应该在第3行的/home/john/www/test/dp.php中通过引用传递

下一个array_flip($_GET)附带的内容()不会引起任何投诉.

我理解通知的原因,严格标准是什么,"通过引用传递"意味着什么,并end()接受对数组的引用作为其参数.(必须的,因为它会影响原来的.)我担心的是,为什么它的工作原理.周围是否()创建了一个临时变量,或者这只是以某种方式欺骗PHP解析器?如果它确实创建了一个临时变量(并且通过设计这样做),那么这应该是安全的,但是如果它是一个欺骗解析器的黑客,那么它可能会在未来的PHP版本中破坏.(我碰巧在PHP版本5.4.36-0 + deb7u1上)

请注意,我不确定我是否喜欢这种结构,即使它是安全的(很容易看不到它,而其他人可能不知道为什么会这样),但是当功能可以很方便时,它通常很方便易读.像这样串起来.

php

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

PHP的独立语法和解析器

我正在寻找适用于php(至少5.2)的现成语法和解析器,理想情况下是一种可以将php代码解析为可读AST(例如xml)的实用程序/库。解析器本身不必用php编写,源语言无关紧要。

php c c++ compiler-construction parsing

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

严格的标准错误

该函数parse_users返回一个数组.

我在另一个函数中执行以下操作:

return reset($this->parse_users($records));
Run Code Online (Sandbox Code Playgroud)

但我得到了一个 Strict Standards: Only variables should be passed by reference in...

是因为我reset()在功能上做了吗?

我必须这样做:

$users = $this->parse_users($records);
return reset($users);
Run Code Online (Sandbox Code Playgroud)

还是别的什么?

php

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

为什么extract()与函数一起工作?

extract(some_function_that_returns_array());

工作良好.

但是在php.net上它说第一个参数必须是一个引用的变量:http://php.net/manual/en/function.extract.php.这是一个错误吗?


所以

function foo(&$array){}

function lol(){ $arr = array(); return $arr; }

foo(lol());
Run Code Online (Sandbox Code Playgroud)

显示"严格标准:只有变量应通过引用传递给......"

提取物不会发生这种情况

php arrays extract

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

为什么不结束(())严​​格通知?

end(array_keys(array(0)))PHP Strict standards: Only variables should be passed by reference(http://3v4l.org/CNLVT)

end((array_keys(array(0))))另一方面,只是工作(http://3v4l.org/168fi).为什么?

VLD反编译器显示正在运行的相同操作码,唯一的区别在于ext列,但我无法找到有关这意味着什么的文档.

php

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

如何在PHP 5.3中的单行元素数组中获取没有严格警告的值

给定一个返回数组的函数;

function return_me_an_array() {
  return array('my_value');
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能调用它并以优雅的方式从数组中获取单个值(是,先,最后还是仅)(是的,我知道这是PHP!)

如果我这样做

$var = reset(return_me_an_array());
Run Code Online (Sandbox Code Playgroud)

我得到以下PHP严格错误:

严格警告:只应通过引用传递变量

同样,每个都给出相同的警告.

$var = array_shift(return_me_an_array());
$var = array_pop(return_me_an_array());
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

$temp = return_me_an_array();
$var = $reset($temp);
Run Code Online (Sandbox Code Playgroud)

但是必须在两个陈述中做到这一点非常可怕.

有没有办法做到这一点?

从表面上看,这类似于如何返回一个数组并在PHP中的一行中获取它的第一个元素?但接受的答案使用reset- 所以我认为这是不同的; 我要么找一个没有严格警告的解决方案,要么被告知我想要的是不可能的.

我也知道PHP 5.4引入了数组解除引用(例如return_me_an_array()[0])但是我目前正在使用5.3.

关闭后编辑:这是如何过于本地化?这是关于如何编写优雅的PHP的一般问题.或者是这样的情况,很少有人关心优雅的PHP它是"一个非常狭窄的情况,通常不适用于全球互联网用户"?

php arrays

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

strip_tags()在写入时给出"不能在写入上下文中使用函数返回值"

Can't use function return value in write context在尝试empty(strip_tags($string))使用三元语句中的条件作为赋值时,我得到了错误.所以为了测试,我摆脱了任务和三元语句.但是,当它显然不在写入上下文中时,我仍然会收到此错误.

想想看,我不确定是什么write context意思 - 我认为这与作业有关,但我不能说我肯定知道.

为什么这不能像我认为的那样工作?这对我来说似乎很直截了当.我错过了什么?

$ cat test.php
<?

$string = "<br/>";

if ( empty(strip_tags($string)) ) {
  echo "It's empty.\n";
} else {
  echo "It's not empty.\n";
}

$ php test.php
PHP Fatal error:  Can't use function return value in write context in test.php on line 5
Run Code Online (Sandbox Code Playgroud)

php strip-tags

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

是否可以内联访问PHP数组?

在PHP中,我有以下构造

$a = array(-1 => '-', 0 => '?', 1 => '+')[1];
Run Code Online (Sandbox Code Playgroud)

这给出了语法错误.是否仍然可以在一个方便的行中执行此类操作,避免多个if/else clases或switch/select语句?我正在考虑在python这里工作正常:

a = {-1:'-', 0:'?', 1:'+'}[1]
Run Code Online (Sandbox Code Playgroud)

php arrays

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

通知和警告 - 检索数组的第一个元素的方法

假设我们有2个函数.首先返回一个包含0..N元素的数组,第二个返回只需返回第一个元素或者NULL如果没有任何元素.

假设我们有这样的代码:

/**
 * return stdClass[]
 */
function foo()
{
    return ...;
}

/**
 * return stdClass|null
 */
function bar()
{
    $arr = foo();

    if ($arr) {
        return $arr[0];
    }
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,执行起来bar()很无聊.

如果我使用.NET然后我会使用arr.FirstOrDefault()方法,它将完美地适合任务.

什么是在PHP中最优雅的方式?

PS:不接受产生任何警告或通知的答案.以及@用于抑制错误的那些

php

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