<?php
class Post {
const TABLE = 'posts';
const TYPE = 'post';
static public function all() {
$select = "SELECT * FROM `%s` WHERE `type` = '%s'\n";
echo sprintf($select, self::TABLE, self::TYPE);
}
}
Post::all();
class Comment extends Post {
const TYPE = 'comment';
}
Comment::all();
echo "===\n';";
class PostA {
const TABLE = 'posts';
const TYPE = 'post';
static public function all() {
$select = "SELECT * FROM `%s` WHERE `type` = '%s'\n";
echo sprintf($select, static::TABLE, static::TYPE);
}
}
PostA::all();
// SELECT * FROM `posts` WHERE `type` = 'post'
class CommentA extends PostA {
const TYPE = 'comment';
}
CommentA::all();
SELECT * FROM `posts` WHERE `type` = 'post'
SELECT * FROM `posts` WHERE `type` = 'post'
===
';SELECT * FROM `posts` WHERE `type` = 'post'
SELECT * FROM `posts` WHERE `type` = 'comment'
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
SELECT * FROM `posts` WHERE `type` = 'post'
SELECT * FROM `posts` WHERE `type` = 'post'
===
';SELECT * FROM `posts` WHERE `type` = 'post'
SELECT * FROM `posts` WHERE `type` = 'comment'