小编Art*_*roO的帖子

php数组和foreach循环的奇怪行为

我有以下代码:

$array = array(
    array("name"=>"John"),
    array("name"=>"Rob"),
    array("name"=>"Tom"),
);
foreach($array as &$el)
    $el["age"]=23;

foreach($array as $el)
    echo $el["name"] . " is: " . $el["age"] . " years old<br>";
Run Code Online (Sandbox Code Playgroud)

我期待这样的事情:

John is: 23 years old
Rob is: 23 years old
Tom is: 23 years old
Run Code Online (Sandbox Code Playgroud)

但我实际收到以下内容:

John is: 23 years old
Rob is: 23 years old
Rob is: 23 years old
Run Code Online (Sandbox Code Playgroud)

这是为什么 ?在第一个foreach循环中,我使用引用来编辑源数组.

php arrays foreach

5
推荐指数
0
解决办法
23
查看次数

Chrome 和 Firefox 错误报告之间的差异

我有以下代码:

<a href='#' class='link'>Click Me</a>
<script type="text/javascript">
$(".link").on('click', function(){
    event.preventDefault();
    console.log('This will appear on Chrome, but not in Firefox');
});
</script>
Run Code Online (Sandbox Code Playgroud)

显然代码中有错误,因为我在函数参数中没有“event”变量。令人惊讶的是,Chrome 控制台不会报告任何错误,并且会执行 console.log 行。如果是 Firefox,它将抛出以下错误:“ReferenceError:事件未定义”,并将停止代码执行。

为什么Chrome浏览器没有报错?是否还有其他例外情况,Chrome 会忽略明显有错误的代码?

jsfiddle: https: //jsfiddle.net/ArturoO/L3hym4r2/3/ 提前致谢!

javascript jquery

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

在变量中包含文件内容

在我的应用程序中,我经常使用AJAX调用来获取某些变量以及html代码,示例JSON:

{
    'result': '1',
    'error': '0',
    'someVar': 'abc',
    'outputHTML':   '<table>....</table>',
}
Run Code Online (Sandbox Code Playgroud)

要创建这样的JSON,我必须在关联数组中分配每个值并对其进行编码(服务器端:PHP代码)。

$response=array(
    'result'    =>  1,
    'error' =>  0,
    'someVar'   =>  'abc',
    'outputHTML'    =>  '<table>....</table>',
);
echo @json_encode($response);
die();
Run Code Online (Sandbox Code Playgroud)

我将HTML代码直接放在类中,但是我想将其移到单独的模板文件中,以减小类大小,并从html代码中分离类代码。问题是我无法将模板代码放入变量样本中:

function ajax_response()
{
    $response=array();
    //of course below code doesn't work
    $response['outputHTML']=include('table-html.php');
    echo @json_encode($response);
    die();
}
Run Code Online (Sandbox Code Playgroud)

其中table-html.php文件包括:

<table>
    ...
</table>
Run Code Online (Sandbox Code Playgroud)

解决该问题的一种方法是使用输出缓冲来捕获table-html.php文件的内容并将其插入变量中。不利之处在于,并非总是在服务器上启用输出缓冲,因此在某些主机上,此类代码将无法正常工作。您对问题的替代解决方案有何建议?

注意:模板文件使用PHP代码动态生成HTML代码,因此必须对包含的PHP文件进行解析。

更新

实际上,此代码将起作用:

$response['outputHTML']=include('table-html.php');
Run Code Online (Sandbox Code Playgroud)

如果table-html.php具有以下内容:

<?php
$output = '<table>'.$some_var.'</table>';
return $output;
Run Code Online (Sandbox Code Playgroud)

php

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

表达身体的成员奇怪的情况

我试着围绕表达身体成员特征的概念.

我在互联网上找到的基本示例非常清楚,但我遇到了这段特定的代码,我不知道它究竟意味着什么:

Assert.Throws<DivideByZeroException>(() => calculator.Divide(5, 0));
Run Code Online (Sandbox Code Playgroud)

上面的例子来自一本关于TDD技术的书,这就是你可以看到Assert类的原因.应该抛出Divide方法DivideByZeroException,现在我们正在测试它.

令人费解的部分是() => calculator.Divide(5, 0).

有人能解释那里究竟发生了什么吗?Divide函数的结果将体现为空括号?

c#

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

从中心展开绝对定位圆

我有绝对定位的div,它通过更圆的边界代表一个圆圈.当div发生悬停事件时,我需要展开这个圆圈,问题是圆圈向右/向下扩展,我需要它从中心扩展.这个偏离过程是因为顶部/左侧参数具有固定值,我设法使用负上/左边距来克服这个问题.最后一个问题是我希望添加从正常状态到扩展的平滑过渡,这会产生不好的结果.HTML代码:

<div class="circle"></div>
Run Code Online (Sandbox Code Playgroud)

CSS代码:

.circle {

  position: absolute;
  left: 150px;
  top: 150px;
  border: 5px solid #000;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  margin-left: -20px;
  margin-top: -20px;
  -webkit-transition: width 0.5s, height 0.5s;
  -moz-transition: width 0.5s, height 0.5s;
  -o-transition: width 0.5s, height 0.5s;
  transition: width 0.5s, height 0.5s;
}
.circle:hover
{
  width: 60px;
  height: 60px;
   margin-left: -30px;
  margin-top: -30px;
}
Run Code Online (Sandbox Code Playgroud)

工作示例:https://jsfiddle.net/ArturoO/4qLr0tc2/5/

如果你删除转换规则,那么它将工作,但我需要动画发生.有任何想法吗 ?

html css css3 css-transitions

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

标签 统计

php ×2

arrays ×1

c# ×1

css ×1

css-transitions ×1

css3 ×1

foreach ×1

html ×1

javascript ×1

jquery ×1