概述
【摘要】现在市面上的PHP版本已经更新到7的大类了,但是仍然有小伙伴习惯使用php5,那么php7与php5的区别的区别有哪些?看看你准备用哪个版本的php,因为在学习php之前,选择合适的软件很重要,所以我们一起来看看php7与php5的区别有哪些?看看你准备用哪个版本的php。
1、php7与php5的区别有哪些——纯php脚本测试
vim test.php
$arr = array();
for ($i = 0; $i < 500000; $i++) {
$arr[$i] = $i;
}
$tmp = array();
foreach ($arr as $i) {
if ($i % 2 == 0) {
$is_exists = array_key_exists($i, $arr);
if ($is_exists) {
array_push($tmp, $i);
}
}
}
PHP5版本测试:
time /usr/bin/php test.php
real 0m0.301s
user 0m0.239s
sys 0m0.050s
--------------------------
time /usr/bin/php test.php
real 0m0.310s
user 0m0.241s
sys 0m0.054s
--------------------------
time /usr/bin/php test.php
real 0m0.289s
user 0m0.238s
sys 0m0.050s
PHP7版本测试:
time /usr/local/php7/bin/php test.php
real 0m0.087s
user 0m0.063s
sys 0m0.024s
-------------------------------------
time /usr/local/php7/bin/php test.php
real 0m0.106s
user 0m0.073s
sys 0m0.033s
--------------------------------------
time /usr/local/php7/bin/php test.php
real 0m0.083s
user 0m0.061s
sys 0m0.022s
通过数据可以看出来,单纯的php脚本测试,可以看出php7性能提升了3到4倍。
2、php7与php5的区别有哪些——php数据库操作测试
首先我们创建一个用户表:
Table: test_user
Create Table: CREATE TABLE `test_user` (
`uid` int(11) NOT NULL AUTO_INCREMENT,
`name` char(100) NOT NULL DEFAULT '',
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
给test_user表插入一条数据:
insert into test_user (uid,name) values (1,"dada");
MariaDB [test]> select * from test_user;
+-----+------+
| uid | name |
+-----+------+
| 1 | dada |
+-----+------+
创建数据库测试脚本test_db.php,确保你的两个PHP版本都安装了PDO扩展。
/usr/bin/php -m|grep pdo
pdo_mysql
pdo_sqlite
/usr/local/php7/bin/php -m|grep pdo
pdo_mysql
pdo_sqlite
我的两个PHP版本已经安装了PDO(不要再使用php_mysql扩展,已经过时了,PHP7已经完全抛弃,mysqli也不建议使用)。
接下来我们通过PDO编写脚本,测试select执行50万次的性能对比:
$host = "yourHost";
$user = "yourUser";
$pass = "yourPass";
$db = "test";
$port = 3306;
try
{
$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
echo "Connected
";
}
catch (Exception $e)
{
echo "Unable to connect: " . $e->getMessage() ."
";
}
$sql = "select SQL_NO_CACHE * from test_user;";
$tmp = array();
for ($i=1; $i<=500000; $i++) {
$ret = $dbh->query($sql);
foreach ($ret as $row) {
$tmp['id'] = $row['id'];
$tmp['name'] = $row['name'];
}
}
PHP5测试test_db.php:
time /usr/bin/php test_db.php
real 0m48.396s
user 0m11.149s
sys 0m3.998s
real 0m51.447s
user 0m11.800s
sys 0m4.395s
real 0m51.517s
user 0m11.733s
sys 0m4.439s
PHP7测试test_db.php:
real 0m47.900s
user 0m9.875s
sys 0m4.130s
real 0m46.977s
user 0m9.760s
sys 0m3.983s
real 0m50.010s
user 0m10.268s
sys 0m4.307s
这次脚本执行了50w次查询,user执行时间PHP7执行的脚本几乎都比PHP5要少一秒!是少一秒不是一毫秒。
3、php7与php5的区别有哪些——PHP框架测试
thinkphp
国内肯定是首选thinkphp框架,选择最新的thinkphp5。我这里直接在官网下载的thinkphp5.0.9版本。
(一)框架入口测试
PHP5下的测试:
time /usr/bin/php ./public/index.php
real 0m0.036s
user 0m0.026s
sys 0m0.010s
real 0m0.038s
user 0m0.026s
sys 0m0.012s
real 0m0.041s
user 0m0.032s
sys 0m0.009s
PHP7下的测试:
time /usr/local/php7/bin/php ./public/index.php
real 0m0.027s
user 0m0.021s
sys 0m0.005s
real 0m0.027s
user 0m0.018s
sys 0m0.009s
real 0m0.025s
user 0m0.023s
sys 0m0.002s
在入口测试下,可以看到PHP和PHP7没有太大的区别,但PHP7还是稍微快一点。
(二)框架逻辑测试
在框架入口复用第一步的逻辑:
namespace appindexcontroller;
class Index
{
public function index()
{
$arr = array();
for ($i = 0; $i < 500000; $i++) {
$arr[$i] = $i;
}
$tmp = array();
foreach ($arr as $i) {
if ($i % 2 == 0) {
$is_exists = array_key_exists($i, $arr);
if ($is_exists) {
array_push($tmp, $i);
}
}
}
}
}
PHP5版本:
time /usr/bin/php ./public/index.php
real 0m0.538s
user 0m0.463s
sys 0m0.072s
real 0m0.454s
user 0m0.386s
sys 0m0.065s
real 0m0.387s
user 0m0.331s
sys 0m0.055s
PHP7版本:
time /usr/local/php7/bin/php ./public/index.php
real 0m0.150s
user 0m0.123s
sys 0m0.024s
real 0m0.137s
user 0m0.105s
sys 0m0.031s
real 0m0.123s
user 0m0.096s
sys 0m0.026s
在thinkphp框架中使用PHP7版本,性能提升大约是PHP5版本的4倍!
以上就是《php7与php5的区别有哪些?看看你准备用哪个版本的php》的全部内容了,如果你选择了更适合你的版本,那么你学习PHP的效率将将增快,所以环球网校的小编建议您认真阅读本文。如果你想知道更多php的知识,可以点击下方资料下载链接。
最后
以上就是清爽火龙果为你收集整理的新学php7还是php5,php7与php5的区别有哪些?看看你准备用哪个版本的php的全部内容,希望文章能够帮你解决新学php7还是php5,php7与php5的区别有哪些?看看你准备用哪个版本的php所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复