Php syntax question

I am running PHP 5.3.0. I found that italic line syntax only works when the first character of the $ expression. Is there a way to include other types of expressions (function calls, etc.)?

Trivial example:

 <?php $x = '05'; echo "{$x}"; // works as expected echo "{intval($x)}"; // hoped for "5", got "{intval(05)}" 
+4
source share
5 answers

Not. Only variables of various forms can be replaced by changing variables.

+2
source
 <?php $x = '05'; echo "{$x}"; $a = 'intval'; echo "{$a($x)}"; ?> 
+3
source

take a look at this link LINK

Code example

 Similarly, you can also have an array index or an object property parsed. With array indices, the closing square bracket (]) marks the end of the index. For object properties the same rules apply as to simple variables, though with object properties there doesn't exist a trick like the one with variables. <?php // These examples are specific to using arrays inside of strings. // When outside of a string, always quote your array string keys // and do not use {braces} when outside of strings either. // Let show all errors error_reporting(E_ALL); $fruits = array('strawberry' => 'red', 'banana' => 'yellow'); // Works but note that this works differently outside string-quotes echo "A banana is $fruits[banana]."; // Works echo "A banana is {$fruits['banana']}."; // Works but PHP looks for a constant named banana first // as described below. echo "A banana is {$fruits[banana]}."; // Won't work, use braces. This results in a parse error. echo "A banana is $fruits['banana']."; // Works echo "A banana is " . $fruits['banana'] . "."; // Works echo "This square is $square->width meters broad."; // Won't work. For a solution, see the complex syntax. echo "This square is $square->width00 centimeters broad."; ?> 

There are different things that you can achieve with a brace, but it is limited, depending on how you use it.

+2
source
 <?php class Foo { public function __construct() { $this->{chr(8)} = "Hello World!"; } } var_dump(new Foo()); 
0
source

As a rule, you do not need parentheses around variables, unless you need to force PHP to treat something as a variable, where otherwise its normal parsing rules cannot. Large - multidimensional arrays. The PHP parser is not greedy for deciding what a variable is and what is not, so brackets are needed to make PHP see the rest of the references to the elements of the array:

 <?php $arr = array( 'a' => array( 'b' => 'c' ), ); print("$arr[a][b]"); // outputs: Array[b] print("{$arr[a][b]}"); // outputs: (nothing), there no constants 'a' or 'b' defined print("{$arr['a']['b']}"); // ouputs: c 
0
source

Source: https://habr.com/ru/post/1309025/


All Articles