위

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

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

 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,934
10-05-15 조회 4,209
10-05-10 조회 2,898
10-04-29 조회 5,586
10-04-28 조회 3,790
10-04-17 조회 4,726
10-04-15 조회 3,178
10-04-04 조회 3,411
10-04-02 조회 2,704
10-03-23 조회 5,889
10-03-19 조회 5,449
10-03-05 조회 5,208
10-03-01 조회 6,867
10-02-27 조회 5,027
10-02-26 조회 3,411
10-02-23 조회 3,362
10-02-23 조회 3,505
10-02-19 조회 3,216
10-02-17 조회 5,641
10-02-17 조회 4,382
10-02-17 조회 3,810
10-02-12 조회 3,135
10-02-12 조회 3,469
10-02-12 조회 3,797
10-02-11 조회 2,919
10-02-11 조회 3,994
10-02-09 조회 3,295
10-02-09 조회 3,413
10-02-09 조회 3,121
10-02-09 조회 3,773
10-02-09 조회 3,043
10-02-09 조회 3,388
10-01-26 조회 3,501
10-01-25 조회 2,621
10-01-25 조회 2,723
10-01-23 조회 3,350
10-01-23 조회 6,850
10-01-20 조회 3,077
10-01-19 조회 3,544
10-01-13 조회 3,754
10-01-07 조회 2,945
10-01-07 조회 2,730
10-01-07 조회 3,691
10-01-07 조회 6,392
09-12-31 조회 3,672
09-12-27 조회 4,370
09-12-18 조회 3,163
09-12-14 조회 5,199
09-12-14 조회 6,066
09-12-06 조회 4,776
09-11-26 조회 3,696
09-11-24 조회 3,819
09-11-24 조회 4,236
09-11-23 조회 3,587
09-11-21 조회 6,953
09-11-20 조회 4,828
09-11-19 조회 2,752
09-11-19 조회 3,102
09-11-13 조회 6,590
09-11-11 조회 3,710
09-11-09 조회 4,746
09-11-09 조회 4,026
09-11-09 조회 2,917
09-11-04 조회 6,759
09-10-26 조회 3,877
09-10-10 조회 7,366
09-10-09 조회 3,388
09-10-08 조회 5,347
09-09-19 조회 4,423
09-09-15 조회 3,566
09-09-14 조회 3,586
09-09-11 조회 5,753
09-09-04 조회 4,832
09-08-31 조회 4,168
09-08-31 조회 4,372
09-08-30 조회 3,443
09-08-30 조회 3,195
09-08-30 조회 3,021
09-08-30 조회 2,715
09-08-30 조회 3,019
09-08-30 조회 3,252
09-08-30 조회 2,949
09-08-16 조회 6,273
09-08-14 조회 5,248
09-08-12 조회 3,191
09-08-12 조회 2,971
09-08-12 조회 3,697
09-07-24 조회 5,957
09-07-23 조회 5,000
09-07-22 조회 4,048
09-07-22 조회 5,679
09-07-22 조회 4,691
09-07-22 조회 2,814
09-07-21 조회 2,711
09-07-21 조회 3,356
09-07-19 조회 3,243
09-07-17 조회 3,973
09-07-17 조회 3,514
09-07-17 조회 2,784
09-07-15 조회 5,867