aasah skrev:
echo '<!-- Holds the ID for the currently marked word. If no word is marked it has the value '-'. -->...';
Hrm.... Fattar fortfarande inte varför det blir noll, men felet är här. '-' avslutar ju strängen! :r (Löses med \'-\'.)
5 svar · 313 visningar · startad av aasah
Jag låter PHP skriva ut en helt vanlig HTML-form. Allt blir som man kan vänta sig fram till slutklämmen... vill säga...
källa skrev:
....
<tr><td id="wordBoxPos5">-</td>
<td><input type="text" id="wordBoxWord5" onFocus="markWord(5)" disabled>
<input type="button" class="buttonColorG" id="wordBoxAddButton5"
onclick="addWord(this.form, 5)" value="Add!" disabled>
<input type="button" class="buttonColorG" id="wordBoxClrButton5"
onclick="clearWord(this.form, 5)" value="Clear!" disabled>
<input type="hidden" id="wordBoxID5" value="">
</td>
</tr>0</div>
Motsvarande PHP-kod:
for ($ix = 0; $ix < 6; $ix++) {
echo ' <tr><td id="wordBoxPos'.$ix.'">-</td>
<td><input type="text" id="wordBoxWord'.$ix.'" onFocus="markWord('.$ix.')" disabled>
<input type="button" class="buttonColorG" id="wordBoxAddButton'.$ix.'"
onclick="addWord(this.form, '.$ix.')" value="Add!" disabled>
<input type="button" class="buttonColorG" id="wordBoxClrButton'.$ix.'"
onclick="clearWord(this.form, '.$ix.')" value="Clear!" disabled>
<input type="hidden" id="wordBoxID'.$ix.'" value="">
</td>
</tr>';
} //Om jag avkommenterar echot nedan försvinner nollan!
echo '<!-- Holds the ID for the currently marked word. If no word is marked it has the value '-'. -->
<input type="hidden" id="currentWordID" value="-">
</td>
</tr>
</table>
</form></P>';
echo '</div>';
Vad i? Hur kan den strängen generera 0? Och vart tar strängen vägen? :q :x
aasah skrev:
echo '<!-- Holds the ID for the currently marked word. If no word is marked it has the value '-'. -->...';
Hrm.... Fattar fortfarande inte varför det blir noll, men felet är här. '-' avslutar ju strängen! :r (Löses med \'-\'.)
[r] Du hann tydligen före.
aasah skrev:
Hrm.... Fattar fortfarande inte varför det blir noll, ...
Anledningen till att du fick noll är samma som varför du får noll på det här:
echo 'A' - 'B';
Du kan inte substrahera bokstäver, så PHP typomvandlar, och värdet på strängarna blir då 0 (noll).
Matte skrev:
Anledningen till att du fick noll är samma som varför du får noll på det här:
echo 'A' - 'B';Du kan inte substrahera bokstäver, så PHP typomvandlar, och värdet på strängarna blir då 0 (noll).
Jag funderade på det... men hur kan det stämma? :q Om man vill utföra ett boolskt test så är ju false, 0, '' och "" samma värde. Medan varje annan sträng är true. Borde inte det betyda att en icke-tom sträng konverteras till någon siffra != 0? Eller kan det vara så att vilken annan sträng som helst blir 1, så man får 1-1 som är 0? :q
Testa att köra intval() eller floatval() på en sträng, så ser du vad typomvandlingen kan tänkas ge.
Visserligen ger det inte alltid samma i uttrycket som t.ex. intval skulle ge (beroende på strängen), men det ger dig en idé om vad som händer.
Typomvandling till numeriskt värde ger inte riktigt samma sak som typomvandling till booleanskt värde.