In PHP why is this a syntax error:
$row['some_key'] = "kkkk";
Raises
Parse error: syntax error, unexpected T_STRING
From the documentation I understood this to be perfectly valid PHP, yet it throws the same error every time (and the error of course goes away then I comment the line out).
Edit: After long searching I actually noticed that the file is indeed corrupted in some way. In Vim (on ubuntu 12.04) the file looks just normal. But when viewing from other computers it's corrupted. So not related to PHP.
In PHP why is this a syntax error:
It's not. If you're getting unexpected T_STRING, the problem is elsewhere (hint: look at the line above).
Related
Receiving the following error while trying to register a custom Magento2 module on my local machine:
Parse error: syntax error, unexpected ''DDF_AdminMenu''
(T_CONSTANT_ENCAPSED_STRING), expecting ')' in
/Users/petey/Desktop/magento/app/code/DDF/AdminMenu/registration.php
on line 5
I can't seem to understand why I'm getting the error.
My code is the following:
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'DDF_AdminMenu',
__DIR__
);
I know this may seem obvious but it happened to me
Please make sure you add <?php at the beginning of the file
Yesterday my Apache installation stopped working with PHP applications like Wordpress, phpMyAdmin and Squirrelmail.
The problem is that Apache-php chokes on lines containing the "global" statement.
The Wordpress error looks like this:
PHP Parse error: syntax error, unexpected '$error' (T_VARIABLE) in /var/www/html/XXXXXXX/wordpress/wp-login.php on line 34
Line 34 contains the "global" statement:
global $error, $interim_login, $action;
Similar in phpMyAdmin:
PHP Parse error: syntax error, unexpected '$text_domains' (T_VARIABLE) in /usr/share/php/gettext/gettext.inc on line 47
Line 47 also includes the global statement:
global $text_domains, $default_domain, $LC_CATEGORIES, $EMULATEGETTEXT, $CURRENTLOCALE;
If I comment out the line PHP just fails on the next line including the "globa"l statement.
I tried to execute the file using php command line and it finishes without any error.
The latest software upgrades doesn't seem to be related.
iwl100-firmware
iwl1000-firmware
iwl105-firmware
iwl135-firmware
iwl2000-firmware
iwl2030-firmware
iwl3160-firmware
iwl3945-firmware
iwl4965-firmware
iwl5000-firmware
iwl5150-firmware
iwl6000-firmware
iwl6000g2a-firmware
iwl6000g2b-firmware
iwl6050-firmware
iwl7260-firmware
libappstream-glib
libertas-usb8388-firmware
linux-firmware
opus
rpcbind
tzdata
tzdata-java
webkitgtk4
webkitgtk4-jsc
webkitgtk4-plugin-process-gtk2
Hoping that someone has a clue.
Thanks
John
I developed a laravel application back in August this year, and it was working fine then. I am trying to run that application now, and it returns this error:
parse error: syntax error, unexpected T_CLASS, expecting T_STRING or
T_VARIABLE or '{' or '$' in D:\bkonme\artisan line 31
And line 31 is like this:
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
My PHP version is 5.6.14 and I am using XAMPP on windows platform. I have some idea of it happening because of some version conflict between laravel and PHP, but i don't know how to resolve that issue, any help?
Even if you have PHP/5.6.14 installed, your app is definitively not using it. You could not use class as identifier until PHP/5.5 (demo).
The feature is called Class name resolution via ::class and it's described in the Migrating from PHP 5.4.x to PHP 5.5.x chapter of the PHP manual.
I have various PHP files, none of which have been modified prior to the app working and it breaking. My problem is that for some reason, these files are suddenly throwing PHP parse errors for things like 'unexpected' square brackets in seemingly random places throughout the file, but upon manually checking the file, the syntax is correct.
The only thing I did that could have 'altered' the files would be various chmod operations to change the permissions. But how/why would this change the actual content of the files?
The files are called on boot just as they always have been, and have worked fine in the past, up until the recent chmod changes.
Is this permanent, or will I just have to restore my system from an earlier time?
RHEL 6.5, PHP 5.4.
Edit:
Example of the error:
PHP Parse error: syntax error, unexpected '[' in /var/ptc/CRM-dev/tools/init on line 122
What's on line 122:
$files = [];
Another example:
PHP Parse error: syntax error, unexpected '[', expecting ')' in /var/ptc/CRM-dev/vendor/react/promise/src/functions.php on line 68
What's on line 68:
return resolve([]);
But these files themselves haven't been changed (as far as I'm aware), and the syntax looks correct.
phpinfo() gives 5.4.39, which is the same as when running php -v on the server.
If the PHP version has been changed then it may be stumbling on the PHP 5.4 square bracket array syntax.
Use phpinfo(); to be sure that the PHP version running the web server is the same as the one you're using on the CLI.
I am sharing my work with some team. On my side, this line json_encode(['Succeeded']) works perfectly, on the team side this fails with this message
Parse error: syntax error, unexpected '[', expecting ')' in /home/app/file.php on line *
Why is this so ?
I think you might have two different versions of PHP installed.
Short array syntax was introduced in version 5.4.0. See http://php.net/manual/en/migration54.new-features.php
Therefore, the following will probably work on both:
json_encode(array('Succeeded'));
That syntax is supported only as of php 5.4.0:
http://php.net/releases/5_4_0.php