diff --git a/ext/twig/twig.c b/ext/twig/twig.c index c25c48422..d71ed35a5 100644 --- a/ext/twig/twig.c +++ b/ext/twig/twig.c @@ -698,7 +698,7 @@ static int twig_add_property_to_class(void *pDest APPLY_TSRMLS_DC, int num_args, zend_property_info *pptr = (zend_property_info *) pDest; APPLY_TSRMLS_FETCH(); - if (!(pptr->flags & ZEND_ACC_PUBLIC)) { + if (!(pptr->flags & ZEND_ACC_PUBLIC) || (pptr->flags & ZEND_ACC_STATIC)) { return 0; } diff --git a/test/Twig/Tests/Fixtures/regression/issue_1143.test b/test/Twig/Tests/Fixtures/regression/issue_1143.test new file mode 100644 index 000000000..ff7c8bb70 --- /dev/null +++ b/test/Twig/Tests/Fixtures/regression/issue_1143.test @@ -0,0 +1,23 @@ +--TEST-- +error in twig extension +--TEMPLATE-- +{{ object.region is not null ? object.regionChoices[object.region] }} +--DATA-- +class House +{ + const REGION_S = 1; + const REGION_P = 2; + + public static $regionChoices = array(self::REGION_S => 'house.region.s', self::REGION_P => 'house.region.p'); + + public function getRegionChoices() + { + return self::$regionChoices; + } +} + +$object = new House(); +$object->region = 1; +return array('object' => $object) +--EXPECT-- +house.region.s