How the primitive type ‘String’ is implemented in PHP? Which character encoding does PHP use? Explain with suitable and easy to understand example

Today, I was trying to understand how the primitive type ‘String’ is implemented in PHP. In search of the same I come across following text from the PHP Manual

The string in PHP is implemented as an array of bytes and an integer
indicating the length of the buffer. It has no information about how
those bytes translate to characters, leaving that task to the
programmer. There are no limitations on the values the string can be
composed of; in particular, bytes with value 0 (“NUL bytes”) are
allowed anywhere in the string (however, a few functions, said in this
manual not to be “binary safe”, may hand off the strings to libraries
that ignore data after a NUL byte.)

After reading above text from the PHP Manual following questions come to my mind :

  1. What does it actually mean by an array of bytes and an integer indicating the length of the buffer? What does actually mean by the term ‘buffer’ in this case?

  2. Why does PHP not handle the task of translating those bytes to characters by itself? Why and what programmer supposed to do in this case of translation?

  3. According to the PHP Manual, there are no limitations on the values the string can be composed of. Does it mean that PHP uses Unicode(utf-8) for the purpose of character encoding?

  4. Do string and byte(a unit of digital information that most commonly consists of eight bits) mean the same thing in PHP?

Someone please clear my above doubts with the help of suitable and easy to understand example/s.

Thank You.