小编reg*_*ity的帖子

PHP Foreach通过引用传递:最后元素复制?(错误?)

我刚刚写了一个简单的PHP脚本,我有一些非常奇怪的行为.我把它减少到重新创建bug所需的最小值:

<?php

$arr = array("foo",
             "bar",
             "baz");

foreach ($arr as &$item) { /* do nothing by reference */ }
print_r($arr);

foreach ($arr as $item) { /* do nothing by value */ }
print_r($arr); // $arr has changed....why?

?>
Run Code Online (Sandbox Code Playgroud)

这输出:

Array
(
    [0] => foo
    [1] => bar
    [2] => baz
)
Array
(
    [0] => foo
    [1] => bar
    [2] => bar
)
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是一些应该发生的奇怪行为?

php arrays loops reference

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

java vs php基准测试

我是一名php开发人员,但最近不得不两次编写相同的应用程序,一次是在php中,一次是在java中,我正在学校上课.为了好奇,我对两者进行了基准测试,发现如果访问数据库,java版本比php版本慢2到20倍,没有DB访问速度慢1到10倍.我看到两个直接的可能性:

  1. 我吮吸java.
  2. 我终于可以告诉人们不要再抱怨php了.

我在这里发布了我的servlet代码.我不希望任何挑剔的抱怨或轻微的改进,但有人可以在那里看到一个可怕的明显的性能问题?或者任何人都可以解释为什么Java感觉它必须吮吸?

我总是听到人们说java比php更快,更具可扩展性,特别是我的老师,他确信它,但是提出的请求越多,java越慢.php似乎没有受到增加的负载的影响,但保持不变.

php java benchmarking

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

使用RSA进行哈希

我正在考虑使用RSA加密算法创建一个哈希函数(如md5或sha1).我想知道是否有任何明显的原因,这个算法不起作用:

  1. 生成RSA公钥/私钥.
  2. 丢弃私钥,永远不要存储它.
  3. 从具有RSA加密的块大小长度的散列开始.
  4. 使用公钥加密消息,一次一个块.
  5. 对于消息的每个加密块,使用指定的算法(可能是+,xor等的组合)将其累积到散列中.

要验证消息与存储的哈希具有相同的哈希,请使用保存的公钥并重复此过程.

这可能,安全,实用吗?

谢谢你的评论.

encryption hash rsa

7
推荐指数
2
解决办法
6630
查看次数

Symfony迁移失败

我刚刚更改了我正在处理的symfony项目的模式(添加了一个表和几列)并运行了以下两个命令:

php symfony doc:generate-migrations-diff
php symfony doc:migrate
Run Code Online (Sandbox Code Playgroud)

以前这没有任何问题,但这次它吓坏了.我意外地给了两个相同名称的表,它合理地失败了,但是现在我修复了我的模式文件它仍然无法工作.它会产生以下错误:

  The following errors occurred:                                                                                                                                                                                                                                                                                           

   - SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'media_images' already exists. Failing Query: "CREATE TABLE media_images (id INT UNSIGNED AUTO_INCREMENT, name VARCHAR(255), start_date DATE, end_date DATE, website VARCHAR(255), location TEXT, description TEXT, PRIMARY KEY(id)) ENGINE = INNODB"  
   - SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'company_type'. Failing Query: "ALTER TABLE bio ADD company_type VARCHAR(255)"                                                                                                                                                                     
   - SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'company'. Failing …
Run Code Online (Sandbox Code Playgroud)

php migration symfony1

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

标签 统计

php ×3

arrays ×1

benchmarking ×1

encryption ×1

hash ×1

java ×1

loops ×1

migration ×1

reference ×1

rsa ×1

symfony1 ×1