How to fix Syntax error, unexpected '' (T_STRING)? - php

The error that I am receiving is this: Parse error: syntax error, unexpected 'TokenType' (T_STRING) in C:\Program Files\Ampps\www\cs5339\lepichardo\4339_f22_assignment1\TokenType.php on line 2. To be clear, both files are php, and they both are in the same director. The code below is where I include the enum TokenType so that I would be able to use it.
<?php
include 'TokenType.php'
?>
The TokenType.php looks like this
<?php
enum TokenType{
case INT;
case STRING;
case COMMA;
}
?>
As far as I now, this should be fine, but gives me that error in that particular line.
If there is any other way to declare and imlpement the enum variable in php I would like to be explained to how to. Thanks in advance!!!

enums are only available in PHP 8.1+. The error suggests you are running PHP 7.
Here's some results of running the following code using various PHP versions (using https://3v4l.org/qHU4f)
<?php
enum TokenType{
case INT;
case STRING;
case COMMA;
}
echo 'hello world';
Output for 8.1.0 - 8.1.11, 8.2rc1 - rc3
hello world
Output for 8.0.1 - 8.0.24
Parse error: syntax error, unexpected identifier "TokenType" in /in/qHU4f on line 2
Process exited with code 255.
Output for 7.4.0 - 7.4.32
Parse error: syntax error, unexpected 'TokenType' (T_STRING) in /in/qHU4f on line 2
Process exited with code 255.
As you can see by the last result, unexpected 'TokenType' (T_STRING) is an error you would receive in PHP 7

Related

Making an image gallery but why do I have this error?

I'm having some errors with my file. Does anyone know what I did wrong?
Error:
syntax error, unexpected ':', expecting ')' in C:\wamp65\www\Php2\01_gallery.php on line 5
It gives above error when I load the page and the error comes from this line:
$arrayImages=glob( pattern: $path."/*.{".$extentions."}", flags: GLOB_BRACE);
The problem is that you are using the PHP 8 syntax but you are trying to execute this code with PHP 7. This syntax is invalid before PHP 8, so you need to make sure that you are using PHP 8.
Named arguments were introduced in PHP 8 and they allow you to provide arguments out of order because each argument is named e.g. pattern: $thisIsMyPattern.
If you can't use PHP 8 for the moment for some reason then a workaround is to remove the parameter names, which you don't even need in this example.
$arrayImages = glob($path."/*.{".$extentions."}", GLOB_BRACE);

Getting many syntax errors in my PHP code [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 7 years ago.
Improve this question
This is my code. I am getting errors every time the page loads and I don't know what is wrong. If you could help me it would be greatly appreciated.
<?php
include ('steamauth/userInfo.php');
$myfile = fopen("userid.txt", "a+") or die("Unable to open file!");
if( strpos(file_get_contents("/userid.txt"),$_GET[$steamprofile['steamid']]) !== false){
fwrite($myfile,$steamprofile['steamid']);}
fclose($myfile)
else( strpos(file_get_contents("/userid.txt"),$_GET[$steamprofile['steamid']]) !== true){
fclose($myfile)
echo"<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="1;url=http://example.com">
<script type="text/javascript">
window.location.href = "http://example.com"
</script>
<title>Page Redirection</title>
</head>
<body>
<p>If you are not redirected automatically, follow the link to www.example.com</p>
</body>
</html>";}
?>
Here are the errors:
[25-Apr-2015 09:46:38 Australia/Perth] PHP Parse error: syntax error, unexpected '.', expecting ']' in /example.com/userid.php on line 4
[25-Apr-2015 09:47:42 Australia/Perth] PHP Parse error: syntax error, unexpected '.', expecting ']' in /example.com/userid.php on line 4
[25-Apr-2015 09:48:09 Australia/Perth] PHP Parse error: syntax error, unexpected '.', expecting ']' in /example.com/userid.php on line 4
[25-Apr-2015 09:48:40 Australia/Perth] PHP Parse error: syntax error, unexpected '}' in /example.com/userid.php on line 7
[25-Apr-2015 09:49:37 Australia/Perth] PHP Parse error: syntax error, unexpected '}' in /example.com/userid.php on line 7
[25-Apr-2015 09:50:17 Australia/Perth] PHP Parse error: syntax error, unexpected T_ELSEIF in /example.com/userid.php on line 7
[25-Apr-2015 09:51:06 Australia/Perth] PHP Parse error: syntax error, unexpected T_ELSEIF in /example.com/userid.php on line 7
[25-Apr-2015 09:53:07 Australia/Perth] PHP Parse error: syntax error, unexpected '}' in /example.com/userid.php on line 6
[25-Apr-2015 09:55:06 Australia/Perth] PHP Parse error: syntax error, unexpected '.' in /example.com/userid.php on line 6
[25-Apr-2015 09:55:34 Australia/Perth] PHP Parse error: syntax error, unexpected '}' in /example.com/userid.php on line 6
[25-Apr-2015 09:56:53 Australia/Perth] PHP Parse error: syntax error, unexpected ')' in /example.com/userid.php on line 7
[25-Apr-2015 09:57:15 Australia/Perth] PHP Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /example.com/userid.php on line 8
[25-Apr-2015 09:58:19 Australia/Perth] PHP Parse error: syntax error, unexpected T_ELSE in /example.com/userid.php on line 8
[25-Apr-2015 09:59:23 Australia/Perth] PHP Parse error: syntax error, unexpected T_ELSE in /example.com/userid.php on line 8
[25-Apr-2015 10:00:02 Australia/Perth] PHP Parse error: syntax error, unexpected T_ELSE in /example.com/userid.php on line 8
There are more (10 MB error log more), but these are the most recent and every time I change some new errors appear.
The code is supposed to open a file (userid.txt) then check if that file contains their steamid if it doesn't it writes in it, if it does then it redirects away.
If you have no idea, then at least Google search the type and name of the error - the error log does give you plenty enough information to solve your error. +1 for using the error log, -1 for not actually reading and using the information it gives you.
To give some more detail: the core of your errors is that you're not writing the PHP correctly, so this implies you don't know PHP, so really what you should be doing is not running before you can crawl and going away and reading up all about PHP and the structure and layout and methods behind the language and how to get intended results from the code you write.
Pretty much all your errors are down to bad syntax, I could rewrite the whole code block for you and format it correctly but really I think it's better for you to go away and read about how to structure IF statements, how to use strpos and how to open and edit files as starting points.
Also read up about how to structure arrays and google search info on how to structure Multidimensional arrays (as that's another syntax fault in your code).
And seriously, I do mean well done for using the error log. Many programmers in PHP merrily get things mostly working and completely ignore learning how to detect and collect their non-critical errors.
Some further pointers to this specific code:
check each instruction ends with a ;
check the difference between $_GET and $_POST, read about them in php.net, also read about what these identifiers actually are (they're special).
be careful with print and echo statements that the character they open with (" or ') is escaped (ie preceded by a backslash) if found inside the string.
check that multidimensional arrays are structured correctly - $array[0][1] NOT $array[0[1]]
check the URL to the files you want to use is correct.
Eat 5 different pieces of fruit or veg a day

Trying to use HUE api but getting php syntax error

I am currently trying to use the https://github.com/muesli/huephp to control my lights through PHP but I am running into a syntax problem.
Here is the line in huecli.php that I am getting a syntax error on where [...
Here is the actual error: "Parse error: syntax error, unexpected '[' "
$hue->lights()[$light]->setLight( $command );
There are more errors but it seems the [$light] is causing the problem. I haven't worked with this kind of syntax before so any help is appreciated!
You are probably not running PHP 5.4+ which is what is required to use Array Dereferencing. To use this code it must be modified as so:
$hue_lights = $hue->lights();
$hue_lights[$light]->setLight( $command );

Getting the Scope Resolution Operator example from php.net to run on PHP 5.2.17

I'm just discovering scope resolution operators in PHP for the first time so I am trying to understand how they work. I viewed example #1 on the php.net page, and have insured I'm on PHP5.2+, however when I run the code:
<?php
class MyClass {
const CONST_VALUE = 'A constant value';
}
$classname = 'MyClass';
echo $classname::CONST_VALUE; // As of PHP 5.3.0
echo MyClass::CONST_VALUE;
?>
However, I get the following error:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM,
expecting ',' or ';' in
/var/www/temp/scope.php on
line 7
Didn't realise that the code only worked on PHP5.3+, I upgraded and things are working fine.

What is unexpected T_VARIABLE in PHP?

I get this PHP error:
Parse error: syntax error, unexpected
T_VARIABLE
From this line:
$list[$i][$docinfo['attrs']['#groupby']] = $docinfo['attrs']['#count'];
Is there anything wrong with this line?
There might be a semicolon or bracket missing a line before your pasted line.
It seems fine to me; every string is allowed as an array index.
It could be some other line as well. PHP is not always that exact.
Probably you are just missing a semicolon on previous line.
How to reproduce this error, put this in a file called a.php:
<?php
$a = 5
$b = 7; // Error happens here.
print $b;
?>
Run it:
eric#dev ~ $ php a.php
PHP Parse error: syntax error, unexpected T_VARIABLE in
/home/el/code/a.php on line 3
Explanation:
The PHP parser converts your program to a series of tokens. A T_VARIABLE is a Token of type VARIABLE. When the parser processes tokens, it tries to make sense of them, and throws errors if it receives a variable where none is allowed.
In the simple case above with variable $b, the parser tried to process this:
$a = 5 $b = 7;
The PHP parser looks at the $b after the 5 and says "that is unexpected".
In my case it was an issue of the PHP version.
The .phar file I was using was not compatible with PHP 5.3.9. Switching interpreter to PHP 7 did fix it.

Categories