我刚刚写了一个简单的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开发人员,但最近不得不两次编写相同的应用程序,一次是在php中,一次是在java中,我正在学校上课.为了好奇,我对两者进行了基准测试,发现如果访问数据库,java版本比php版本慢2到20倍,没有DB访问速度慢1到10倍.我看到两个直接的可能性:
我在这里发布了我的servlet代码.我不希望任何挑剔的抱怨或轻微的改进,但有人可以在那里看到一个可怕的明显的性能问题?或者任何人都可以解释为什么Java感觉它必须吮吸?
我总是听到人们说java比php更快,更具可扩展性,特别是我的老师,他确信它,但是提出的请求越多,java越慢.php似乎没有受到增加的负载的影响,但保持不变.
我正在考虑使用RSA加密算法创建一个哈希函数(如md5或sha1).我想知道是否有任何明显的原因,这个算法不起作用:
要验证消息与存储的哈希具有相同的哈希,请使用保存的公钥并重复此过程.
这可能,安全,实用吗?
谢谢你的评论.
我刚刚更改了我正在处理的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)