Skip to content

Commit 792b3c7

Browse files
committed
[BUG FIX] Fix #3: $this->obj->$var generates fatal error
1 parent 7fa33c5 commit 792b3c7

File tree

4 files changed

+42
-4
lines changed

4 files changed

+42
-4
lines changed

PHPCtags.class.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,12 @@ private function struct($node, $reset=FALSE, $parent=array())
112112
} elseif ($node instanceof PHPParser_Node_Stmt_Namespace) {
113113
//@todo
114114
} elseif ($node instanceof PHPParser_Node_Expr_Assign) {
115-
$kind = 'v';
116-
$node = $node->var;
117-
$name = $node->name;
118-
$line = $node->getLine();
115+
if(is_string($node->var->name)) {
116+
$kind = 'v';
117+
$node = $node->var;
118+
$name = $node->name;
119+
$line = $node->getLine();
120+
}
119121
} elseif ($node instanceof PHPParser_Node_Expr_FuncCall) {
120122
switch ($node->name) {
121123
case 'define':
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
function e_bugfix_0003_define()
3+
{
4+
return array(
5+
array(
6+
'name'=>'DbConnectionUserDecorator',
7+
'kind'=>'c',
8+
'line'=>'2',
9+
'scope'=>'',
10+
'access'=>'',
11+
),
12+
array(
13+
'name'=>'__set',
14+
'kind'=>'m',
15+
'line'=>'3',
16+
'scope'=>'class:DbConnectionUserDecorator',
17+
'access'=>'public',
18+
),
19+
);
20+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?php
2+
class DbConnectionUserDecorator {
3+
public function __set($key, $value) {
4+
$this->conn->$key = $value;
5+
}
6+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
class t_bugfix_0003 extends PHPCtagsTestCase {
3+
4+
public function __construct()
5+
{
6+
parent::__construct();
7+
$this->mExample = 'bugfix_0003';
8+
}
9+
10+
}

0 commit comments

Comments
 (0)