func($name1) dönmelidir name1
Bu mümkün mü?
İşte öyle bir fonksiyon.
function var_name (&$iVar, &$aDefinedVars)
{
foreach ($aDefinedVars as $k=>$v)
$aDefinedVars_0[$k] = $v;
$iVarSave = $iVar;
$iVar =!$iVar;
$aDiffKeys = array_keys (array_diff_assoc ($aDefinedVars_0, $aDefinedVars));
$iVar = $iVarSave;
return $aDiffKeys[0];
}
Bu gibi diyoruz
$test = "blah";
echo var_name($test, get_defined_vars());
Yani "test" yazdıracaktır.
Ben aslında bu işlevi over here de (get_defined_vars tarafından döndürülen dizi yineleme bunu yapabilirsiniz) bulundu. Olduğunu anlamak için biraz daha kolay olabilir.
İyi Fikir? Hayır
Herhangi usecase Eğer should bunu nereye yapılacak? Hayır
Kavramının kanıtı? Tabii!
<?php
a($test);
function a($x) {
$trace = debug_backtrace();
$file = file($trace[0]['file']);
$line = $file[$trace[0]['line']-1];
var_dump($line); // Prints "a($test);" Do the Stringparsing and your done
}
Evet, bu SourceFile okuyarak "kolay" alır, o da oradan php opcodes ve iş userland erişim sağlar "bytekit" adlı bir php uzantısı kullanılarak yapılabilir.
Hayır.
Bir işlevi tanımlarken bu işlev kapsam içinde olması için, yerel bir değişken adı belirtin. PHP fonksiyonunu uygun değeri geçecek, ancak sembol kapsamında artık.
Ancak, alternatif olarak "variable variables" kullanarak içine bakmak olabilir.
Açıkçası, is olası çılgın yeterince yüksek değerler için.
The comments on this page include several techniques: http://php.net/manual/en/language.variables.php
lucas dot karisny at linuxmail dot org's answer works on my machine: http://www.php.net/manual/en/language.variables.php#49997
YMMV.