Введенин

В системах Unix довольно часто возникает необходимость иметь для одного и того же файла или каталога разные имена. При этом одно из имен логично назвать основным, а все другие - его псевдонимами. В терминологии Unix такие псевдонимы называются символическими ссылками.
Символическая ссылка - это просто бинарный файл специального вида, который содержит ссылку на основной файл. При обращении к такому файлу (например, открытию его на чтение) система "соображает", к какому объекту на самом деле запрашивается доступ, и прозрачно его обеспечивает. Это означает, что мы можем использовать символические ссылки точно так же, как и обычные файлы. Однако иногда нужно бывает работать со ссылкой именно как со ссылкой, а не как с файлом. Для этого и существуют перечисленные ниже функции PHP.

Жесткие ссылки

Создание символической ссылки - не единственный способ задать для одного файла несколько имен. Главный недостаток символических ссылок - существование основного имени файла, на которое все и ссылаются. Попробуйте удалить этот файл - и вся "паутина" ссылок, если таковая имелась, развалиться на куски. Есть и другой недостаток: открытие файла, на который указывает ссылка, происходит несколько медленнее, т.к. системе нужно проанализировать содержимое ссылки и установить связь с "настоящим" файлом. Особенно это чувствуется, если одна ссылка указывает на другую, а та на третью и т.д. уровней на 10.

Жесткие ссылки позволяют вам иметь для одного файла несколько совершенно равноправных имен, причем доступ по ним осуществляется одинаково быстро. При этом, если одно из таких имен будет удалено, то сам файл удалиться только в том случае, если данное имя было последним, и других имен у файла нет.
Зарегистрировать новое имя у файла (то есть создать для него жесткую ссылку) можно с помощью функции link().
Ее синтаксис полностью идеентичен функции symlink(), да и работает она по тем же правилам, за исключением того, что создает не символическую, а жесткую ссылку.

readlink

Возвращает имя основного файла.
Синтаксис:

string readlink(string $linkname)

Возвращает имя основного файла, с которым связан его синоним $linkname. Это бывает полезно, если вы хотите узнать основное имя файла, чтобы, например, удалить сам файл, а не ссылку на него. В случае ошибки функция возвращает значение "ложь".

symlink

Создает символическую ссылку.
Синтаксис:

bool symlink(string $target, string $link)

Эта функция создает символическую ссылку с именем $link на объект (файл или каталог), заданную в $target. В случае "провала" функция возвращает false.

lstat

Функция собирает вместе всю информацию, выдаваемую операционной системой для указанной ссылки, и возвращает ее в виде массива.
Синтаксис:

array lstat(string $filename)

Функция полностью аналогична вызову stat(), за исключением того, что если $filename задает не файл, а символическую ссылку, будет возвращена информация именно об этой ссылке (а не о файле, на который она указывает, как это делает stat()).

linkinfo

Функция возвращает значение поля "устройство" из результата, выдаваемого функцией lstat().

Синтаксис:

int linkinfo(string $linkname)

Ее обычно задействуют, если хотят определить, существует ли еще объект, на который указывает символическая ссылка в $linkname.

is_scalar

Проверяет, является ли переменная простой.
Синтаксис:

bool is_scalar(mixed var)

Возвращает true, если var имеет скалярный тип (чила, строки, логические значения), но не комплексный (массивы или объекты).

is_double

Определяет, является ли переменная типа double (дробная).

Синтаксис:

bool is_double(mixed var);

Возвращает true, если var является типа double (дробной), или false в обратном случае.

is_string

Определяет, является ли переменная строкой.
Синтаксис:

bool is_string(mixed var);

Возвращает true, если var - это строка, или false в обратном случае.

is_array

Определяет, является ли переменная массивом.
Синтаксис:

bool is_array(mixed var);

Возвращает true, если var - это массив, или false в обратном случае.

is_object

Определяет, является ли переменная объектом.
Синтаксис:

bool is_object(mixed var);

Возвращает true, если var - это объект (object), или false в обратном случае

is_resource

Определяет, является ли переменная указателем на ресурс.
Синтаксис:

bool is_resource(mixed var);

Возвращает true, если var указывает на ресурс, выделенный и возвращенный предназначенной для этого функцией.
Ресурсы - это объекты, подобные файлам или результатам запросов к базам данных, выделяемые и освобождаемые внутренними функциями PHP. Когда программе больше не требуется какой-либо ресурс, хорошей практикой программирования является его явное освобождение предназначенными для этого функциями. Но в большинстве случаев интерпретатор PHP самостоятельно, по мере необходимости освобождает ненужные ресурсы (обычно при завершении сценария).

get_resource_type

Определение типа дескриптора ресурса.
Синтаксис:

string get_resource_type(resource $handle);

Эта функция возвращает строку, содержащую описание типа ресурса. Если в аргументе передается неверный указатель на ресурс, то возникает ошибка.

$c = mysql_connect();
echo get_resource_type($c)."n";
// выведет: mysql link
$file = fopen("filename.txt","w");
echo get_resource_type($file)."n";
// выведет: file
$doc = new_xmldoc("1.0");
echo get_resource_type($doc)."n";
// выведет: domxml document

is_null

Проверяет, является ли переменная пустой.
Синтаксис:

bool is_null(mixed var)

Возвращает true, если var не существует (или ей явно присвоено пустое значение null).
Функция эквивалентна выражению: (var===null или is_set(var)

is_numeric

Проверяет, является ли переменная числовой.
Синтаксис:

bool is_numeric(mixed var)

Возвращает true, если var имеет численный тип (integer, double), или строковой с числовым значением.

is_bool

Проверяет, является ли переменная логической.
Синтаксис:

bool is_bool(mixed var)

Возвращает true, если var имеет тип логического значения (TRUE или FALSE), а иначе - false.

is_int

Определяет, является ли переменная типа integer(целочисленной).

Синтаксис:

bool is_int(mixed var);

Возвращает true, если var имеет целочисленный тип.

is_integer

Определяет, является ли переменная типа integer.
Синтаксис:

bool is_integer(mixed var);

Возвращает true, если var является типа integer (целочисленной), или false в обратном случае.

is_long

Определяет, является ли переменная типа integer(целочисленной).

Синтаксис:

bool is_long(mixed var);

Возвращает true, если var имеет целочисленный тип (integer, long), или false в обратном случае.

is_real

Определяет, является ли переменная типа real (дробной).

Синтаксис:

bool is_real(mixed var);

Возвращает true, если var типа real (дробная), или false в обратном случае.

is_float

Определяет, является ли переменная типа float (дробная).

Синтаксис:

bool is_float(mixed var);

Возвращает true, если var типа float (дробная), или false в обратном случае.

gettype

Получает тип переменной.
Синтаксис:

string gettype(mixed var);

Возвращает тип переменной PHP var.
Возможные значения для возвращаемой строки:

integer
double
string
array
object
unknown type

intval

Возвращает целочисленное значение переменной.
Синтаксис:

int intval(mixed var, int [base]);

Возвращает целочисленное значение переменной var, используя указанное основание для перевода (по умолчанию 10).
var может быть скалярного типа. Вы не можете использовать функцию intval() для массивов или объектов.

doubleval

Получает значение переменной в формате double.
Синтаксис:

double doubleval(mixed var);

Возвращает double (с плавающей точкой) значение переменной var.
var может быть скалярного типа. Вы не можете использовать doubleval() на массивах и объектах.

empty

Определяет, есть ли у переменной какое либо значение.
Синтаксис:

int empty(mixed var);

Возвращает false, если var существует и имеет не пустое или не нулевое значение; true в обратном случае.
Фактически функция проверяет, имеет ли переменное значение, которое может быть приравнено к 0, то есть: (var==0)

$var=0;
if(empty($var)) {
echo "$var - либо 0, либо не имеет значения";
if(!isset($var)) {
echo "$var не имеет значения";
};
};

Заметьте, что эту функцию бесполезно использовать с аргументом, отличным от переменной, например выражение empty (Addslashes($name)) бессмысленно, т.к. здесь проверяется значение, возвращаемое функцией. Единственное, что может выявить в данном варианте функция empty(), это имеет ли выражение значение, эквивалентное true (не равное нулю), а это может быть проверено и без использования функции.

isset

Определяет, существует ли переменная.
Синтаксис:

int isset(mixed var);

Возвращает true, если var существует; false в обратном случае.
Фактически функция проверяет, имеет ли переменная значение, идентичное null, то есть: (var===null).
Отметьте различие между равенством и идентичностью.
Если переменная была удалена функцией unset(), она больше не будет определяться функцией isset().

$a = "test";
echo isset($a); // trueunset($a);
echo isset($a); // false

settype

Устанавливает тип переменной.
Синтаксис:

int settype(string var, string type);

Устанавливает тип переменной var на type.
Возможные значения type :

integer
double
string
array
object
Возвращает true, при успехе; false в обратном случае.

strval

Получает строковое значение переменной.
Синтаксис:

string strval(mixed var);

Получает строковое значение var.
var может быть любого скалярного типа. Вы не можете использовать strval() на массивах или объектах.

unset

Удаляет указанную переменную.
Синтаксис:

int unset(mixed var);

unset() уничтожает указанную переменную и возвращает true.
Пример:

unset( $foo );
unset( $bar["quux"] );