mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 09:41:36 +00:00
[php/ru] Add magic constants (#2520)
* Delete unnecessary line on english. Delete unnecessary line on english. * Update examples add new io and func requestServer * Update go-ru.html.markdown * Add Late Static Binding Add Late Static Binding * Add magic constants Add magic constants * Update php-ru.html.markdown * Update php-ru.html.markdown * Error Handling Error Handling * [php/ru] edit my changes with 80 symbols in line rule. * [php/ru] add removed part from array.
This commit is contained in:
parent
b7eb4ad1ac
commit
43ce42005e
@ -58,8 +58,10 @@ $int1 = 12; // => 12
|
||||
$int2 = -12; // => -12
|
||||
$int3 = 012; // => 10 (ведущий 0 обозначает восьмеричное число)
|
||||
$int4 = 0x0F; // => 15 (ведущие символы 0x означают шестнадцатеричное число)
|
||||
|
||||
// Двоичная запись integer доступна начиная с PHP 5.4.0.
|
||||
$int5 = 0b11111111; // 255 (0b в начале означает двоичное число)
|
||||
|
||||
// Дробные числа
|
||||
$float = 1.234;
|
||||
$float = 1.2e3;
|
||||
@ -87,6 +89,7 @@ $dbl_quotes = "This is a $sgl_quotes."; // => 'This is a $String.'
|
||||
// Специальные (escape) символы работают только в двойных кавычках
|
||||
$escaped = "This contains a \t tab character.";
|
||||
$unescaped = 'This just contains a slash and a t: \t';
|
||||
|
||||
// Заключайте переменные в фигурные скобки, если это необходимо
|
||||
$apples = "I have {$number} apples to eat.";
|
||||
$oranges = "I have ${number} oranges to eat.";
|
||||
@ -723,8 +726,121 @@ ChildClass::test();
|
||||
/*
|
||||
I'm a ParentClass
|
||||
But I'm ChildClass
|
||||
|
||||
/**********************
|
||||
* Позднее статическое связывание.
|
||||
*
|
||||
*/
|
||||
|
||||
class ParentClass
|
||||
{
|
||||
public static function who()
|
||||
{
|
||||
echo "I'm a " . __CLASS__ . "\n";
|
||||
}
|
||||
|
||||
public static function test()
|
||||
{
|
||||
// self ссылается на класс в котором определен метод.
|
||||
self::who();
|
||||
// static ссылается на класс в котором метод вызван.
|
||||
static::who();
|
||||
}
|
||||
}
|
||||
|
||||
ParentClass::test();
|
||||
/*
|
||||
I'm a ParentClass
|
||||
I'm a ParentClass
|
||||
*/
|
||||
|
||||
class ChildClass extends ParentClass
|
||||
{
|
||||
public static function who()
|
||||
{
|
||||
echo "But I'm " . __CLASS__ . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
ChildClass::test();
|
||||
/*
|
||||
I'm a ParentClass
|
||||
But I'm ChildClass
|
||||
*/
|
||||
|
||||
|
||||
/**********************
|
||||
* Магические константы
|
||||
*
|
||||
*/
|
||||
|
||||
// Возвращает имя текущего класса. Должно быть использовано внутри класса.
|
||||
echo "Current class name is " . __CLASS__;
|
||||
|
||||
// Возвращает полный путь текущей папки из которой вызван файл.
|
||||
echo "Current directory is " . __DIR__;
|
||||
|
||||
// Обычно используют в таких случаях:
|
||||
require __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
// Возвращает полный путь к текущему файлу.
|
||||
echo "Current file path is " . __FILE__;
|
||||
|
||||
// Возвращает имя текущей функции.
|
||||
echo "Current function name is " . __FUNCTION__;
|
||||
|
||||
// Возвращает номер текущей линии.
|
||||
echo "Current line number is " . __LINE__;
|
||||
|
||||
// Возвращает имя текущего метода. Возвращает только если вызван внутри метода.
|
||||
echo "Current method is " . __METHOD__;
|
||||
|
||||
// Возвращает имя текущего пространства имен.
|
||||
echo "Current namespace is " . __NAMESPACE__;
|
||||
|
||||
// Возвращает имя текущего трейта.
|
||||
// Возвращает только если испольщуется внутри трейта.
|
||||
echo "Current namespace is " . __TRAIT__;
|
||||
|
||||
|
||||
/**********************
|
||||
* Обработка ошибок
|
||||
*
|
||||
*/
|
||||
|
||||
// Простую обработку ошибок можно произвести спомощью try catch блока.
|
||||
|
||||
try {
|
||||
// Выполняем что-то
|
||||
} catch (Exception $e) {
|
||||
// Обработка исключения
|
||||
}
|
||||
|
||||
// При использовании try catch блока в области вилимости, стоит использовать
|
||||
// следующий подход:
|
||||
|
||||
try {
|
||||
// Do something
|
||||
} catch (\Exception $e) {
|
||||
// Обработка исключения
|
||||
}
|
||||
|
||||
// Специальное(кастомное) исключение - exceptions
|
||||
|
||||
class MyException extends Exception {}
|
||||
|
||||
try {
|
||||
|
||||
$condition = true;
|
||||
|
||||
if ($condition) {
|
||||
throw new MyException('Something just happend');
|
||||
}
|
||||
|
||||
} catch (MyException $e) {
|
||||
// Обработка исключения
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## Смотрите также:
|
||||
@ -734,4 +850,4 @@ But I'm ChildClass
|
||||
|
||||
Если вы раньше пользовались языком с хорошей организацией пакетов, посмотрите [Composer](http://getcomposer.org/).
|
||||
|
||||
Для изучения стандартов использования языка посетите PHP Framework Interoperability Group's [PSR standards](https://github.com/php-fig/fig-standards).
|
||||
Для изучения стандартов использования языка посетите PHP Framework Interoperability Group's [PSR standards](https://github.com/php-fig/fig-standards).
|
||||
|
Loading…
Reference in New Issue
Block a user