我對錯誤訊息“嘗試訪問 int 型別值的陣列偏移量”有問題我使用 PHP 7.4 版,正如我在網上看到的:
非陣列的陣列式訪問
bool、int、float 或作為陣列的資源(例如 $null["key"])現在將生成通知。
代碼是:
<?php
foreach($gdata_worksheets As $key => $value ){
//$key="1361298261";
?>
<option value="<?php echo strToHex($key); ?>"<?php echo $key == $gdata->worksheet_id ? ' selected="selected"' : ''?>><?php echo htmlentities($value, ENT_QUOTES, 'UTF-8');?></option>
function strToHex($string){
$hex = '';
for ($i=0; $i<strlen($string); $i ){
$ord = ord($string[$i]);
$hexCode = dechex($ord);
$hex .= substr('0'.$hexCode, -2);
}
return strToUpper($hex);
}
如何解決這個問題,有什么想法嗎?
問候
uj5u.com熱心網友回復:
$key可能不是字串,可以gettype()用來檢查。
您可以通過以下方式訪問數字substr():
for ($i=0; $i<strlen($string); $i ){
$ord = ord(substr($string, $i, 1));
如果您更喜歡使用陣列訪問,則必須強制轉換$string為(string):
function strToHex($string){
$string = (string)$string;
最終提案可能是:
function strToHex($string)
{
$result = '';
$n = strlen($string);
for ($i = 0; $i < $n; $i ) {
$c = substr($string, $i, 1);
$c = ord($c);
$result .= sprintf('X', $c);
}
return $result;
}
echo strToHex(1234); // 31323334
echo strToHex('Yop!'); // 596F7021
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/396415.html
標籤:php
