Home>Article>Backend Development> Introducing the pitfalls of upgrading PHP7!
Recommendation (free):PHP7
I heard that this version of php7 has been greatly improved before, and finally The company's projects will also be upgraded to PHP7.
Before upgrading, I read some introductions compiled by everyone and found that this version has great changes from the bottom up. Of course, the efficiency has also been improved a lot.
Except for some new features (everyone has already written this completely, I will write some that I haven’t seen, and I will update it slowly as the project progresses)
Extension part
1. Pay attention to your php version and download/install the corresponding extension. I am in a windows environment, so I download the dll file to use it
Friendly reminder : Pay attention to the extension address of the ini configuration. I was surprised at first, why none of my extensions were extended, and there was no information in phpinfo()!I never expected that the address was written wrong!~~It’s time to fight
There should be more people using memcache in the 2.5. After some research, there were some that switched to memcached, and some that were recompiled by myself. I thought that since we upgraded relatively late, someone should have uploaded this version that supports PHP7, so I found it.
Post the link and go directly to the corresponding version: https://github.com/nono303/PHP7-memcache-dll
3.phalcon also has a version that supports php7. You can also directly find the corresponding version: https://github.com/phalcon/cphalcon/releases/tag/v3.4.1
Code part
1. The split method can no longer be used in PHP. You can usepreg_splitorstr_splitorexplodeaccording to your needs.
2. Custom function When passing parameters, what does it mean that the parameters must not have no value? See the following code description
Error:
function test($name) { if(empty($name)) { echo 'php7时会出现致命错误!~'根本到不了这里; } }
Correct:
function test($name=null) { if(empty($name)) { echo '这里就可以正常执行了~'; } }
Unfortunately, many of my projects have This is how it is written (roughly reading a default time when there is no time value!~)
2018-10-23 18:28
Changes in indirect use of variables, properties and methods
Expression | Parsing method of PHP 5 | Parsing method of PHP 7 |
---|---|---|
$$foo['bar']['baz'] | ${$foo['bar']['baz']} | ($$foo )['bar']['baz'] |
$foo->{$bar ['baz']} | ($$foo)['bar']['baz'] | |
$foo->{$bar['baz']}() | ($$foo)['bar']['baz'] | |
Foo::{$bar['baz']}() | (Foo::$bar)[' baz']() |
The other thing is that there are many more warnings when comparing 7. ##
The above is the detailed content of Introducing the pitfalls of upgrading PHP7!. For more information, please follow other related articles on the PHP Chinese website!