Home » Php » PHP: What do the curly braces in $variable{0} do?

PHP: What do the curly braces in $variable{0} do?

Posted by: admin July 12, 2020 Leave a comment

Questions:

I was going through a codebase and came across a line I had a question about. It’s something I haven’t seen before and I was wondering if someone could explain it for me. Here’s the code:

$variableName = $array[1];
$variableName{0} = strtolower($variableName{0});
$this->property = $variableName;

What are the curly braces being used for? I’ve used curly braces to define variables as variable names before, but is this the same thing? I can’t seem to find any resources online that explain it, but I’m not sure if I’m searching for the right thing.

How to&Answers:

access the single byte with that index {0} => first char (in non-utf8 string)

you could simply test it with:

$var='hello';
echo $var{0};

Answer:

It’s setting the first character of the string to lower case. It’s a string shortcut operator, functioning the same as this:

<?php
$variableName = strtolower(substr($variableName, 0, 1)) . substr($variableName, 1)

Answer:

Curly braces {} work the same as square brackets [], for array or string indexing. I’m guessing it is borrowed from perl, in which the square brackets are used for arrays and braces are used for hashes. But in PHP arrays and hashes are the same thing.