3
다음 코드로 간단한 스위치 기능을 수행하려고합니다.스위치 기능이 원하는 값 대신 기본값 출력
$query = "SELECT * FROM entries where Venue='Condamine' and Year='2018' and
Event='$5,000 Novice' and herd='2' and scratched IN('n','l') ORDER BY Draw
ASC";
// Execute the query
$result = mysqli_query($con ,$query);
if (!$result){
die ("Could not query the database: <br />". mysqli_error());
}
// Change herds
function getherd($catch) {
switch($catch)
{
case '2':
return 'Herd Change';
break;
default:
return 'Damn!';
break;
}
}
$catch = $row["herd"];
echo "<tr>";
echo "<td bgcolor=#FFFFFF><strong> ". getherd($catch) ." </strong></td>";
echo "<td bgcolor=#FFFFFF> </td>";
echo "</tr>";
?>
결과가 기본값 인 "젠장!"이 출력됩니다. 원하는 값인 "Herd Change"대신에 내가 뭘 잘못하고 있는지. 내가 행 무리의 값 = 2
하십시오'위해서 var_dump ($ 캐치)'전'에코 "
답변
가장 아마 타입 캐스팅 문제
이
입니다$catch = string($row["herd"]);
을 시도 할 경우 단어 "무리 변경"을 인쇄 할 확인 $ 캐치는 2출처
2017-12-13 05:34:25 Exprator
감사합니다 확인 : 치명적인 오류 : catch되지 않은 오류 (정의되지 않은 함수 STR에 전화)에/home – user2432677
죄송합니다. 형제 님, 편집 된 ans를 사용합니다. 저는 파이썬을 사용하므로 그 구문을 사용했습니다. 그것을 시도하십시오 – Exprator
사용 $ catch = (string) $ row [ "herd"]; 이것이 작동합니다! –
변수 $ catch에 정수 값이 들어 있으면 다음 구문을 사용하십시오. 문자열 값의 경우
는
는Switch case manual
은 수동으로 변수를 캐스트 좋은 방법이 아닙니다, 다음을 수행하십시오.
도움이 되었기를 바랍니다.
출처
2017-12-13 05:41:57
감사하지만 아무런 차이가 없었습니다 – user2432677
테스트 할 수 있도록 전체 코드를 제공해주십시오. –
다음과 같이 코드를 변경해야합니다.
출처
2017-12-13 06:04:47 Thushan
당신이 옳다고 생각합니다! "$ row = mysqli_fetch_row ($ result)"이 행이 누락되었습니다 ;-) –
예. 그게 여기에 문제가있어 :) – Thushan
나는 Thushan의 코드를 시험해 보았고 정의되지 않은 오류가 나왔다. 그러나 while ($ row = mysqli_fetch_array ($ result, MYSQLI_ASSOC)) 코드를 추가했습니다. { $ herd = $ row [ "herd"]; 내 현재 스크립트. 실제로 작동하지만 오류 메시지가 나타납니다. 치명적 오류 :/home/sqchacom/public_html /에있는 getherd() (이전에 /home/sqchacom/public_html/nominations/2018_condamine/draws/test.php:144에 선언되었습니다)를 다시 작성할 수 없습니다. nominations/2018_condamine/draws/test.php 라인 144 라인 144는 다음과 같습니다 function getherd ($ herd) { – user2432677
관련 문제