2013-07-26 2 views
1

공용 클래스 외부의 변수가 있습니다. 이 변수는 다음과 같습니다공용 변수에서 PHP 변수를 사용하는 방법은 무엇입니까?

$userid 

나는 다음과 같은 PHP 클래스의 변수를 사용하고 싶지만 내가 가진 문제입니다 :

public function printJavascript() { 
    if ($this) { 
     $page = $this - > page; 
     $order = (($this - > order) ? implode(':', $this - > order) : ''); 
     $filter = (($this - > filter) ? implode(':', $this - > filter) : ''); 
    } 

    echo "<script type=\"text/javascript\">\n"; 
    echo "var params = ''; var tblpage = '".$page."'; var tblorder = '".$order."'; var tblfilter = '".$filter."';\n"; 
    echo "function tblSetPage(page) { tblpage = page; params = '&page=' + page + '&order=' + tblorder + '&filter=' + tblfilter; updateTable(); }\n"; 
    echo "function tblSetOrder(column, order) { tblorder = column + ':' + order; params = '&page=' + tblpage + '&order=' + tblorder + '&filter=' + tblfilter; updateTable(); }\n"; 
    echo "function tblSetFilter(column) { val = document.getElementById('filter-value-' + column).value; tblfilter = column + ':' + val; tblpage = 1; params = '&page=1&order=' + tblorder + '&filter=' + tblfilter; updateTable(); }\n"; 
    echo "function tblClearFilter() { tblfilter = ''; params = '&page=1&order=' + tblorder + '&filter='; updateTable(); }\n"; 
    echo "function tblToggleCheckAll() { for (i = 0; i < document.dg.checkbox.length; i++) { document.dg.checkbox[i].checked = !document.dg.checkbox[i].checked; } }\n"; 
    echo "function tblShowHideFilter(column) { var o = document.getElementById('filter-' + column); if (o.style.display == 'block') { tblClearFilter(); } else { o.style.display = 'block'; } }\n"; 
    echo "function tblReset() { params = '&page=1'; updateTable(); }\n"; 
    echo "</script>\n"; 
} 
} 

어떻게이를 것인가? 조언 해 주시고 모든 분들께 감사드립니다.

+3

구조를 통해 수업에 전달 하시겠습니까? –

+0

첫 번째 관련 질문을 확인하십시오 -> 답변에 정확하게 답하십시오. http://stackoverflow.com/questions/484537/in-php-when-initializing-a-class-how-would-one-pass-a-variable-to-that-class-to?rq=1 –

+1

이것은입니다. 'class'가 아닌'function'입니다. – jterry

답변

0

클래스 메서드의 시작 부분에 global $userid;을 추가하여 $userid을 전역으로 정의 할 수 있으며 Dave Chen이 자신의 의견에서 생성자 또는 다른 방법을 통해 개체에 전달할 수 있다고 말했습니다. 두 번째 옵션은 제 의견으로는 더 좋은 방법입니다.

0

변수를 구조체를 통해 클래스에 전달하거나 다른 추가 인수로 전달하는 것이 가장 좋지만 변수가 이미 공용이면 해당 변수를 사용할 수 있어야합니다.

<?php 
global $var; 
$var = 'there'; 

class test { 
    public function testy() { 
     global $var; 
     echo 'hi ' . $var; 
    } 
} 

$class = new test(); 
$class->testy(); 

출력 :

[email protected] /tmp $ vim lol.php 
hi there 

(전술 한 바와 같이)이 더 나은 방법은 함수에 대한 인수를 통해 변수를 전달하는 것이다.

<?php 
$var = 'there'; 

class test { 
    public function testy($who) { 
     echo 'hi ' . $who; 
    } 
} 

$class = new test(); 
$class->testy($var); 
+0

-1 for'global' 함수와 메소드는 이유를위한 인자 목록을 가지고 있습니다. –

+0

@ KevinM1 나는 그것을 이해한다. 나는 그 문장의 첫 부분에서 그것을 말했다. ([...]는 해당 변수를 구조체를 통해 클래스에 전달하거나 다른 추가 인수 [...]로 전달합니다. 나는 그것을 인수로 전달하지 않고 코드를 추가했다. :) – timgws

관련 문제