我一直在努力争取这几个小时。我正在运行CentOS 6.6。几个小时前,由于需要一些库,我遇到了需要PHP 5.4+的Symfony项目的问题。所以我安装了5.4版本,而我曾经使用PHP 5.3.3。
PHP 5.4允许一些新功能。如数组速记声明和二进制数据字符串。像这样:
//array shorthand declaration
$arr = [1, 2, 3, 4]; //PHP +5.4
$arr = array(1, 2, 3, 4); //PHP 5.3.3
//binary data strings
0b001 //PHP +5.4
这是官方文档,所以这里有一个指向来源的链接:https://secure.php.net/manual/en/migration54.new-features.php
然而,当执行这些脚本时,我收到错误,好像我没有运行PHP 5.4,例如我会得到这个:
PHP Parse error: syntax error, unexpected '[' in /vendor/wisembly/elephant.io/src/Engine/AbstractSocketIO.php on line 44
代码行将是:
//does not work
$data = [$event, $args]; //PHP 5.4 syntax
//it works
$data = array($event, $args); //PHP 5.3.3 syntax
这是在终端上运行php -v的输出
PHP 5.4.43 (cli) (built: Jul 8 2015 12:08:50)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
所以基于这个输出,我知道我正在运行PHP版本5.4,我发现的唯一的事情就是某个地方出现了配置错误,它仍在使用PHP 5.3。
所以我的问题是如何知道Symfony使用的是什么版本的PHP?感谢。
答案 0 :(得分:3)
运行php -v
时,它会显示CLI的php版本。不是用于脚本的php版本(由您的网络服务器运行)。
您有多种解决方案可以获取您的网络服务器使用的版本。
在.php页面中使用函数phpinfo();
的示例。
<?php
phpinfo(); // Outputs information about PHP's configuration
直接来自命令行的示例(显示与phpinfo()
一起显示的相同信息)
php -i
答案 1 :(得分:0)
您可以使用命令symfony console about
,该命令将在末尾显示PHP版本:
E:\webfolder>symfony console about
-------------------- ---------------------------------
Symfony
-------------------- ---------------------------------
Version 5.1.2
Long-Term Support No
End of maintenance 01/2021
End of life 01/2021
-------------------- ---------------------------------
Kernel
-------------------- ---------------------------------
Type App\Kernel
Environment dev
Debug true
Charset UTF-8
Cache directory ./var/cache/dev (726 KiB)
Log directory ./var/log (0 B)
-------------------- ---------------------------------
PHP
-------------------- ---------------------------------
Version 7.4.0
Architecture 64 bits
Intl locale fr_FR
Timezone UTC (2020-07-21T20:20:32+00:00)
OPcache false
APCu false
Xdebug false
-------------------- ---------------------------------