PHP

// Получение даты первого дня текущего месяца
echo date('Y-m-01') . "<br/>";
 
// Получение даты последнего дня текущего месяца
echo date('Y-m-t') . "<br/>";
 
// Получение даты первого дня предыдущего месяца
echo date("Y-m-01", strtotime("-1 month")) . "<br/>";
 
// Получение даты последнего дня предыдущего месяца
echo date("Y-m-t", strtotime("-1 month")) . "<br/>"; 
 
// Получение даты первого дня следующего месяца
echo date("Y-m-01", strtotime("+1 month")) . "<br/>";
 
// Получение даты последнего дня следующего месяца
echo date("Y-m-t", strtotime("+1 month"));

Обработка даты пришедшей из формы из поля с типом «date»:

   if(!$_REQUEST['date']) $data['error'][0][]='Введите дату!';
   else {
      $date_array=explode('-',$_REQUEST['date']);
      if(!checkdate($date_array[1], $date_array[2], $date_array[0]))  $data['error'][0][]='Введите правильную дату';
      }
// использование многоточия в параметрах функций

// переменное число аргументов
class A
{
    public function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
    }
}


echo (new A())->sum(1, 2, 3, 4);

// "распаковка" параметров из массива по параметрам
// Убираем лишние поля по ключам, оставляем только нижеперечисленные
$source_array = [
'one' => 1,
'two' => 2,
'three' => 3,
'four' => 4,
];

$result_array = array_intersect_key($source_array, array_flip(['two', 'three']));

// $result_array = [
//  'two' => 2,
//  'three' => 3,
//  ];

Статические методы внутри трейта

<?php

trait A
{
    public static function methodA()
    {
        return 1;
    }
}

class B{
    use A;
}

echo A::methodA(); // работает

echo B::methodA();  // и так тоже работает

echo (new B())::methodA();  //  и так тоже работает
Евгений

Яндекс.Метрика