เหวย ในที่สุดมันก็มาแล้ว enum
ที่ชาวบ้านชาวช่องเค้ามีกันมาตั้งแต่สิบๆ ปีที่แล้ว , แต่ก็นะ มาช้าดีกว่าไม่มา
วิธีการใช้งาน ก็ประมาณนี้เลย
enum Status {
case None;
case Active;
case Closed;
}
Status $status = Status::None;
if($status === Status::Active)
จริงๆ การใช้ … (ไข่ปลา รึที่เรียกว่า spread operator) ในการ unpacking มีมาตั้งแต่ php 7.4 แล้ว แต่อันนั้น ทำได้เฉพาะ Numberic Array
แต่งวดนี้ ใช้ได้กับ Associative Array แล้วจ้า ขอบอกว่า ถ้าเคยเขียน Js น่าจะพอรู้ว่า มันโครตสะดวก ในการบริหารตัวแปลเลยทีเดียวเชียว
$array1 = ["a" => 1];
$array2 = ["b" => 2];
$array = ["a" => 0, ...$array1, ...$array2];
var_dump($array); // ["a" => 1, "b" => 2]
เออ อันนี้ก็งง ว่าทำไม มันไม่มีมาตั้งนานละ
อันนี้เอาไว้ตรวจสอบว่า Array นั้นเป็น Numberic Array รึ Associative Array แน่
$list = ["a", "b", "c"];
array_is_list($list); // true
$notAList = [1 => "a", 2 => "b", 3 => "c"];
array_is_list($notAList); // false
$alsoNotAList = ["a" => "a", "b" => "b", "c" => "c"];
array_is_list($alsoNotAList); // false
ใน class เราจะสามารถประกาศ const แบบ final ได้แล้ว ในกรณีที่เราไม่อยากให้ class ที่สืบทอดไป override ค่าใหม่
class Foo
{
final public const X = "bar";
}