Private Properties Exposed
For our Components project we are ofcourse writing unit tests (with PHPUnit ). Sometimes you would want to test whether a private property contains the correct data, and of course with the normal visibility rules you can't access those from your unit test. There is an interesting trick for this, which I'll share here:
<?php
class foo {
private $bar = 42;
}
$obj = new foo;
$propname="\0foo\0bar";
$a = (array) $obj;
echo $a[$propname];
?>
Comments
$f->{"0Foo0id"} (for private members) and $f->{"0*0name"} (for protected ones) used to work. Too bad someone added a "Cannot access property started with '0'" fatal error to the Zend Engine in the meantime, making necessary the array-cast hack presented here...
I'd rather have ReflectionProperty->setAccessible(TRUE) like (insert other programming language here):)
Life Line
Updated a bench
The Yellow Eye
A blue heron's head, with its very yellow stare-y eye.
#BirdPhotography #Photography #BirdsOfFediverse #BirdsOfMastodon #London
My little Lego box is telling me it really is quite warm outside.
Created a bicycle_parking and a crossing
What the United States and Israel are doing to Iran is undistinguishable from Russia is doing to Ukraine.
Created 8 waste_baskets, 7 benches, and 5 other objects
The Early Bird Catches the Worm
Updated a pub
Created 3 recyclings, 3 waste_baskets, and 2 other objects
I walked 3.4km in 56m37s
Updates from walk
🐰🥚 Two bunnies lazing about, tired from hiding all the chocolate eggs.
Created a bench; Updated a bus_stop
I walked 1.7km in 28m08s
Updated 2 bus_stops
Created a telephone; Updated a cafe and a toilet; Deleted a kiosk shop and a toilet; Confirmed an atm
Updated a bench
Updated a restaurant
I hiked 17.3km in 3h37m57s
Updated a restaurant
I walked 9.6km in 2h5m58s
I walked 7.2km in 1h10m18s
Updated a pet_grooming shop; Deleted a dry_cleaning shop; Confirmed 2 variety_store shops, a fitness_centre, and a convenience shop
I walked 4.1km in 47m50s






Shortlink
This article has a short URL available: https://drck.me/ppe-46g