SimpleXML の -> の後に XML パスを取る次の PHP 関数があります。
function parseRecipeData($xmlPath) {
global $db_recipe_type;
global $db_recipe_filename;
global $xml;
$xml = simplexml_load_file($db_recipe_filename);
// var_dump($xml);
// Get data from XML Field
$requestedInfo = $xml->$xmlPath;
//var_dump($requestedInfo);
return $requestedInfo;
}
私の問題は、PHP 行 #1 が何も返さないのに対し、PHP 行 #2 は XML 値を返すことです。$recipeSize = "batch->attributes()->quantity";
私のアプリケーションの上部で定義されており、グローバルスコープである必要があることに注意してください。私の XML ツリーは、このコードの残りの下にあります。
1:<?php echo parseRecipeData($recipeSize); ?>
2:<?php echo $xml->batch->attributes()->quantity; ?>
XML 構造
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE recipe>
<recipe>
<batch quantity="2.13 gal"/>
</recipe>
PHP の 1 行が関数を返し、それらが同じコードに解決されるべきであると考えない理由を誰でも理解できますか?