Я получил значение внутри тега literal в этом xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/xml-to-html.xsl"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="Kategori"/>
</head>
<results>
<result>
<binding name="Kategori">
<literal datatype="http://www.w3.org/2001/XMLSchema#string">Gerak Kasar</literal>
</binding>
</result>
<result>
<binding name="Kategori">
<literal datatype="http://www.w3.org/2001/XMLSchema#string">Gerak Halus</literal>
</binding>
</result>
</results>
</sparql>
используя этот код:
$x = 0;
$kategori = array();
while ($x < count($hasilcek->results->result)) {
$kategori[$x]= $hasilcek->results->result[$x]->binding->literal;
$x++; }
Но когда я пытаюсь получить результат IF ELSEIF внутри WHILE, используя этот код:
$x = $x-1;
while ($x > -1){
if ($kategori[$x] = 'Gerak Kasar') {echo "Gerak Kasar";}
elseif ($kategori[$x] = 'Gerak Halus') {echo "Gerak Halus";}
else {echo "tidak ada";}
$x--;}
точно результат должен быть:
Герак Касар Герак Халус
но почему я получаю:
Герак КасарГерак Касар
Я думаю, что есть что-то не так, когда я делаю выбор IF для $ kategori [] внутри WHILE. Может ли кто-нибудь объяснить? Благодарю.
вместо оператора сравнения вы используете оператор присваивания.
if ($kategori[$x] = 'Gerak Kasar') {echo "Gerak Kasar";}
elseif ($kategori[$x] = 'Gerak Halus') {echo "Gerak Halus";}
Поэтому измените его на
if ($kategori[$x] == 'Gerak Kasar') {echo "Gerak Kasar";}
elseif ($kategori[$x] == 'Gerak Halus') {echo "Gerak Halus";}
Потому что когда if ($kategori[$x] = 'Gerak Kasar')
исполняется $kategori[$x]
всегда становитесь Gerak Kasar
. Вот почему вы снова получаете тот же результат.
Селамат Паги. :)
Попробуй это:
$x = $x-1;
while ($x > -1){
if ($kategori[$x] == 'Gerak Kasar') {echo " Gerak Kasar ";}
elseif ($kategori[$x] == 'Gerak Halus') {echo " Gerak Halus ";}
else {echo "tidak ada";}
$x--;}