Skip to content

Instantly share code, notes, and snippets.


Kerem Güneş k-gun

View GitHub Profile
View promises.js
// Bu kodları bit html dosyası içine kaydedip aşağıda çalıştırmak
// istediğin /* ... */ alanları açabilirsin.
// Her "async function" bir "Promise" döndürür.
async function foo() {}
/* console.log(foo()) */
/* console.log(foo().then(x => console.log(x))) */
k-gun / Uninitialized typed properties 4.bug
Created Dec 8, 2019
Another "uninitialized" thing..
View Uninitialized typed properties 4.bug
class A { protected int $x; }
class AA extends A { protected $x; }
// -> PHP Fatal error: Type of acme\AA::$ must be int (as in class acme\A)
No var name here "acme\AA::$".
k-gun / Uninitialized typed properties 3.bug
Last active Dec 4, 2019
Another "uninitialized" thing..
View Uninitialized typed properties 3.bug
$foo = new class() {
var ?array $a;
function dump() { var_dump($this->a); }
function sort() { ksort($this->a); }
// E1: Error: Typed property class@anonymous::$a must not be accessed before initialization
// E2: TypeError: ksort() expects parameter 1 to be array, null given (should throw E1 cos its an uninitialized property?)
k-gun / Uninitialized typed properties 2.bug
Created Nov 22, 2019
Weird behavior with uninitialized typed properties and __set/__get
View Uninitialized typed properties 2.bug
Weird behavior with uninitialized typed properties and __set/__get
Seems calling a constructor is triggering __set magic for uninitialized typed properties. So it does not matter the property is public or private/protected.
I suppose the problem is __set/__get called before __construct when a type is given to a property. Also I if remove __get then I get object(acme\Options)#1 (1) { ["stack"]=> array(1) { ["stack"]=> array(1) { ["one"]=> int(1) } } }.
k-gun / Uninitialized typed properties.bug
Last active Nov 22, 2019
php bugreport that was gone spam
View Uninitialized typed properties.bug
Uninitialized typed properties
While throwing when try to access to any uninitialized typed property (eg: $o->x == null),
the codes below are just causing notice.
BTW, error message is so weird. We were expecting something like this;
View uninitialized stuff
// Java
class Foo { Integer i; }
class Test {
public static void main(String args[]) {
System.out.println(new Foo().i == null);
// JavaScript
View nö.php
// ok, cos converted to ?int = null, right?
function foo(int $i = null) {}
// ok, all ok, right?
$a = new class {
public $i;
public function check(): bool {
return ($this->i != null);
View salt.js
const crypto = require('crypto');
const Salt = {
* Length.
* @const int
LENGTH: 128,
View nope.sql
-- 2. Soru
SELECT "class", count(*) AS "count"
FROM "Student"
WHERE "grade" >= 70
GROUP BY "class"
HAVING count(*) > 1 -- 10
def fn_vector(words):
import re, locale
#global words
def slug(words):
return fn_slug(words)
i = 0
dic = {}
words = slug(words)
You can’t perform that action at this time.