Общие
Что такое ссылка?
Ссылки в PHP — это средство доступа к содержимому одной переменной под разными именами. Они не похожи на указатели C так как в PHP — это псевдонимы в таблице имён переменных, а имя переменной и её содержимое — это разные вещи, поэтому одно содержимое может иметь разные имена.
Какие основные операции с использованием ссылок?
Со ссылками можно выполнить три базовые операции: присваивание по ссылке, передача по ссылке и возврат по ссылке.
Присваивание по ссылке
Это когда одна переменная ссылается на значение другой переменной, например:
<?php
$a =& $b;
?>
Здесь, переменные $a и $b указывают на одно и то же значение.
Передача по ссылке
Для этого создаются две переменные, которые ссылаются на одно и то же содержимое: одну передают в функции, а другую — в области видимости вызова, например:
<?php
function foo(&$var)
{
$var++;
}
$a = 5;
foo($a);
?>
В результате функция изменит значение, на которое указывает переменная $a, на 6. Причина состоит в том, что в функции foo переменная $var ссылается на то же содержимое, что и переменная $a
Возврат ссылок
Возврат по ссылке используется, когда нужно определить переменную, к которой требуется привязать ссылку. Пример с объектом, где переменная $myValue, является ссылкой на свойство объекта $value:
<?php
class Foo
{
public $value = 42;
public function &getValue()
{
return $this->value;
}
}
$obj = new Foo();
$myValue = &$obj->getValue();
$obj->value = 2;
echo $myValue; // 2
?>
Другой пример:
<?php
function &collector()
{
static $collection = array();
return $collection;
}
$collection = &collector();
$collection[] = 'foo';
?>
Назовите простые типы данных, поддерживаемые в РНР?
- Скалярные типы:
- bool - логический тип принимает только два значения, которые выражают истинность: true или false.
- int - целые числа.
- float - числа с плавающей запятой.
- string - это строка, содержит набор символов, в котором символ - то же, что и байт.
- array - массив, упорядоченная структура данных, которая связывает значения и ключи.
- object - объекты, сущность обладающая состоянием и поведением, имеющая поля и методы.
- resource - это тип, который хранит ссылку на внешний ресурс.
- never - это тип, означает, что функция прекратит работу без возврата значения.
- void - это тип, указывает, что функция не возвращает значение.
- null