Baru saja diperbarui ke PHP 7.1 dan mulai mendapatkan kesalahan berikut
Peringatan: Nilai non-numerik ditemukan di baris 29
Seperti inilah tampilan baris 29
$sub_total += ($item['quantity'] * $product['price']);
Di localhost semuanya berfungsi dengan baik ..
Ada ide bagaimana mengatasi ini atau apa itu?
var_dump($item['quantity'], $product['price'])
Jawaban:
Tampaknya di PHP 7.1, Peringatan akan dikeluarkan jika nilai non-numerik ditemukan. Lihat tautan ini .
Berikut adalah bagian relevan yang berkaitan dengan pemberitahuan Peringatan yang Anda dapatkan:
Saya menebak $ item ['quantity'] atau $ product ['price'] tidak mengandung nilai numerik, jadi pastikan bahwa nilai tersebut mencantumkannya sebelum mencoba mengalikannya. Mungkin menggunakan semacam kondisional sebelum menghitung $ sub_total, seperti:
sumber
$sub_total += ((int)$item['quantity'] * (int)$product['price']);
Bukan masalah yang Anda alami tetapi kesalahan yang sama untuk orang yang menelusuri.
Ini terjadi pada saya ketika saya menghabiskan terlalu banyak waktu di JavaScript.
Kembali ke PHP saya menggabungkan dua string dengan "
+
" bukan ".
" dan mendapatkan kesalahan itu.sumber
+
, diasumsikan bahwa itu adalahint
nilai ... sedangkan operan yang diberikan bukan tipe data numerik.+
bukannya.
. Terima kasih!Anda dapat menyelesaikan masalah tanpa logika baru hanya dengan memasukkan sesuatu ke dalam nomor, yang mencegah peringatan dan sama dengan perilaku di PHP 7.0 dan yang lebih lama:
(Jawaban dari Daniel Schroeder tidak setara karena $ sub_total akan tetap tidak disetel jika nilai non-numerik ditemukan. Misalnya, jika Anda mencetak $ sub_total, Anda akan mendapatkan string kosong, yang mungkin salah dalam faktur. - oleh casting Anda memastikan bahwa $ sub_total adalah bilangan bulat.)
sumber
Dalam kasus saya itu karena saya digunakan
+
seperti dalam bahasa lain tetapi dalam operator penggabungan string PHP.
.sumber
Ini terjadi pada saya secara khusus di PHPMyAdmin. Jadi untuk menjawab ini secara lebih spesifik , saya melakukan hal berikut:
Dalam File:
Saya mengubah ini:
Untuk ini:
Berharap bahwa menyelamatkan seseorang dari masalah ...
sumber
Saya mengalami masalah ini dengan paginasi tautan maju dan mundur .... cukup setel (int) di depan variabel $ Page + 1 dan berhasil ...
sumber
Saya mengalami masalah di phpmyadmin dengan PHP 7.3. Terima kasih @coderama, saya mengubah libraries / DisplayResults.class.php baris 855 dari
ke
Tetap.
sumber
Halo, Dalam kasus saya menggunakan (WordPress) dan PHP7.4, saya mendapat peringatan tentang masalah nilai numerik. Jadi saya mengubah kode lama sebagai berikut:
Dari:
$val = $oldval + $val;
Untuk:
$val = ((int)$oldval + (int)$val);
Sekarang peringatan itu hilang :)
sumber
Periksa apakah Anda tidak menambahkan beberapa variabel yang nilainya adalah string kosong seperti ''.
Contoh:
sumber
Coba ini.
dan di dalam lingkaran Anda sekarang Anda dapat menggunakan ini
Ini harus menyelesaikan masalah Anda.
sumber
Saya baru saja melihat halaman ini karena mengalami masalah ini. Bagi saya, saya memiliki angka floating point yang dihitung dari array tetapi bahkan setelah menetapkan variabel sebagai floating point kesalahan masih diberikan, inilah perbaikan sederhana dan kode contoh di bawahnya yang menyebabkan masalah.
Contoh PHP
sumber
itulah kode yang saya miliki yang mengulang dan membuat elemen div html baru. Kode berfungsi dengan baik dan elemen terbentuk, tetapi saya mendapat peringatan yang sama di error_log.
Setelah membaca jawaban lain yang berguna, saya menyimpulkan bahwa saya sedang menjumlahkan string dan angka di baris yang salah. Jadi saya mengubah kode di baris itu menjadi
Sekarang kodenya berfungsi seperti sebelumnya tetapi kali ini tanpa peringatan. Semoga contoh ini bermanfaat bagi seseorang.
sumber
Selesaikan kesalahan ini di WordPress
Solusi sederhana di sini!
wp-includes\SimplePie\Parse\Date.php
$second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
$second = round((int)$match[6] + (int)$match[7] / pow(10, strlen($match[7])));
sumber
itu bekerja 100% :)
sumber
Itu biasanya terjadi ketika Anda menipu string dengan tanda +. Di PHP Anda dapat membuat penggabungan menggunakan tanda titik (.) Jadi terkadang saya tidak sengaja meletakkan tanda + di antara dua string di PHP, dan itu menunjukkan kepada saya kesalahan ini, karena Anda hanya dapat menggunakan + masuk angka.
sumber
Pastikan struktur kolom Anda INT.
sumber
Jika nilai non-numerik ditemukan dalam kode Anda, coba di bawah ini. Kode di bawah ini diubah menjadi float.
sumber
di PHP jika Anda menggunakan + untuk penggabungan Anda akan berakhir dengan kesalahan ini. Dalam php + adalah operator aritmatika . https://www.php.net/manual/en/language.operators.arithmetic.php
penggunaan operator + yang salah:
gunakan . untuk penggabungan
sumber