위

넘겨온 변수의 이름을 추출하는 함수..

값이아니라 변수명입니다~

 Here s a function to get the name of a given variable.  Explanation and examples below.

   function vname(&$var, $scope=false, $prefix='unique', $suffix='value')
   {
     if($scope) $vals = $scope;
     else      $vals = $GLOBALS;
     $old = $var;
     $var = $new = $prefix.rand().$suffix;
     $vname = FALSE;
     foreach($vals as $key => $val) {
       if($val === $new) $vname = $key;
     }
     $var = $old;
     return $vname;
   }


 Explanation:

 The problem with figuring out what value is what key in that variables scope is that several variables might have the same value.  To remedy this, the variable is passed by reference and its value is then modified to a random value to make sure there will be a unique match.  Then we loop through the scope the variable is contained in and when there is a match of our modified value, we can grab the correct key.

 Examples:

 1.  Use of a variable contained in the global scope (default):
 < ?php
   $my_global_variable = "My global string.";
   echo vname($my_global_variable); // Outputs:  my_global_variable
 ? >

 2.  Use of a local variable:
 < ?php
   function my_local_func()
   {
     $my_local_variable = "My local string.";
     return vname($my_local_variable, get_defined_vars());
   }
   echo my_local_func(); // Outputs: my_local_variable
 ? >

 3.  Use of an object property:
 < ?php
   class myclass
   {
     public function __constructor()
     {
       $this->my_object_property = "My object property  string.";
     }
   }
   $obj = new myclass;
   echo vname($obj->my_object_property, $obj); // Outputs: my_object_property
 ? >
 =>2줄로
 < ?php
 function var_name(&$var, $scope=0)
 {
     $old = $var;
     if (($key = array_search($var = 'unique'.rand().'value', !$scope ? $GLOBALS : $scope)) && $var = $old) return $key;
 }
 ? >

[이 게시물은 관리자님에 의해 2011-10-31 17:16:08 PHP & HTML에서 이동 됨]
|

댓글 1개

찾다찾다 여기서 찾게 되었네요. 정말 감사합니다.
그러고보니 딱 일년전 글이군요 ㅎ
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
10-05-18 조회 2,929
10-05-15 조회 4,201
10-05-10 조회 2,889
10-04-29 조회 5,580
10-04-28 조회 3,784
10-04-17 조회 4,723
10-04-15 조회 3,175
10-04-04 조회 3,406
10-04-02 조회 2,699
10-03-23 조회 5,886
10-03-19 조회 5,444
10-03-05 조회 5,206
10-03-01 조회 6,866
10-02-27 조회 5,024
10-02-26 조회 3,402
10-02-23 조회 3,359
10-02-23 조회 3,499
10-02-19 조회 3,213
10-02-17 조회 5,631
10-02-17 조회 4,375
10-02-17 조회 3,800
10-02-12 조회 3,133
10-02-12 조회 3,464
10-02-12 조회 3,794
10-02-11 조회 2,917
10-02-11 조회 3,992
10-02-09 조회 3,291
10-02-09 조회 3,407
10-02-09 조회 3,119
10-02-09 조회 3,773
10-02-09 조회 3,039
10-02-09 조회 3,383
10-01-26 조회 3,497
10-01-25 조회 2,617
10-01-25 조회 2,718
10-01-23 조회 3,346
10-01-23 조회 6,842
10-01-20 조회 3,066
10-01-19 조회 3,542
10-01-13 조회 3,752
10-01-07 조회 2,942
10-01-07 조회 2,727
10-01-07 조회 3,688
10-01-07 조회 6,387
09-12-31 조회 3,671
09-12-27 조회 4,368
09-12-18 조회 3,155
09-12-14 조회 5,190
09-12-14 조회 6,060
09-12-06 조회 4,773
09-11-26 조회 3,692
09-11-24 조회 3,814
09-11-24 조회 4,234
09-11-23 조회 3,585
09-11-21 조회 6,951
09-11-20 조회 4,824
09-11-19 조회 2,748
09-11-19 조회 3,097
09-11-13 조회 6,587
09-11-11 조회 3,707
09-11-09 조회 4,742
09-11-09 조회 4,019
09-11-09 조회 2,914
09-11-04 조회 6,753
09-10-26 조회 3,874
09-10-10 조회 7,360
09-10-09 조회 3,383
09-10-08 조회 5,344
09-09-19 조회 4,422
09-09-15 조회 3,563
09-09-14 조회 3,583
09-09-11 조회 5,699
09-09-04 조회 4,828
09-08-31 조회 4,163
09-08-31 조회 4,369
09-08-30 조회 3,439
09-08-30 조회 3,193
09-08-30 조회 3,019
09-08-30 조회 2,713
09-08-30 조회 3,018
09-08-30 조회 3,248
09-08-30 조회 2,942
09-08-16 조회 6,269
09-08-14 조회 5,238
09-08-12 조회 3,185
09-08-12 조회 2,968
09-08-12 조회 3,691
09-07-24 조회 5,950
09-07-23 조회 4,995
09-07-22 조회 4,044
09-07-22 조회 5,676
09-07-22 조회 4,689
09-07-22 조회 2,809
09-07-21 조회 2,707
09-07-21 조회 3,353
09-07-19 조회 3,240
09-07-17 조회 3,961
09-07-17 조회 3,511
09-07-17 조회 2,781
09-07-15 조회 5,866