Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyelesaian kepada Amaran PHP: Argumen tidak sah dibekalkan untuk preg_match()

Penyelesaian kepada Amaran PHP: Argumen tidak sah dibekalkan untuk preg_match()

WBOY
WBOYasal
2023-06-23 11:17:01904semak imbas

Apabila anda menggunakan fungsi preg_match() PHP, anda mungkin menghadapi ralat "Argumen tidak sah dibekalkan untuk preg_match()". Ralat ini bermakna anda tidak memberikan parameter kepada fungsi preg_match() dengan betul. Dalam artikel ini, kami akan mengetahui lebih lanjut tentang ralat ini dan cara membetulkannya.

  1. Latar belakang ralat

Dalam aplikasi PHP, anda mungkin menggunakan fungsi preg_match() untuk mencari dan memadankan ungkapan biasa. Walau bagaimanapun, jika anda tidak membekalkan argumen dengan betul seperti yang dijangkakan oleh fungsi preg_match(), anda akan menemui mesej ralat berikut:

Amaran PHP: Argumen tidak sah dibekalkan untuk preg_match()

Ini Maksudnya, anda tidak memberikan parameter kepada fungsi preg_match() dengan betul. Khususnya, anda akan menghadapi ralat ini jika anda tidak memberikan parameter regex yang betul.

Selain itu, ralat ini juga akan berlaku apabila parameter kedua fungsi preg_match() bukan rentetan.

  1. Penyelesaian

Sebelum menyelesaikan ralat ini, anda perlu mengetahui parameter yang betul yang diperlukan oleh fungsi preg_match(). Fungsi preg_match() memerlukan dua parameter:

  • Parameter 1: ungkapan biasa
  • Parameter 2: rentetan untuk mencari dalam

Berikut adalah beberapa isu biasa dan penyelesaian yang boleh menyebabkan ralat "Argumen tidak sah dibekalkan untuk preg_match()":

  1. Tiada argumen ungkapan biasa dibekalkan

Jika anda tidak Menyediakan ungkapan biasa argumen kepada fungsi preg_match() dan anda akan melihat ralat "Argumen tidak sah dibekalkan untuk preg_match()".

Sebagai contoh, jika anda menggunakan kod berikut:

$string = "Hello, world!";
preg_match($string);

Menjalankan kod akan mengakibatkan Ralat berikut: Amaran PHP: Argumen tidak sah dibekalkan untuk preg_match()

Untuk menyelesaikan masalah ini, anda perlu menyediakan ungkapan biasa kepada fungsi preg_match() seperti berikut:

$string = "Hello , world!";
preg_match("/Hello/", $string);

Kod di atas akan mencari rentetan "Hello" dalam pembolehubah $string. Di sini, ungkapan biasa ialah "/Hello/".

  1. Parameter kedua bukan rentetan

Apabila parameter kedua fungsi preg_match() bukan rentetan, "Argumen tidak sah dibekalkan untuk preg_match()" akan muncul "kesilapan.

Contohnya, jika anda menggunakan kod berikut:

$string = 123;
preg_match("/[0-9]+/", $string);

Menjalankan kod menyebabkan ralat berikut: Amaran PHP: Argumen tidak sah dibekalkan untuk preg_match()

Untuk membetulkannya, anda perlu memastikan argumen kedua kepada fungsi preg_match() ialah rentetan. Jika anda sedang mencari nombor, anda harus menukarnya kepada rentetan seperti ini:

$string = "123";
preg_match("/[0-9]+/", $string) ;

Kod di atas akan mencari nombor dalam pembolehubah $string. Di sini, ungkapan biasa ialah "/[0-9]+/".

  1. Ralat Lain

Jika anda telah menyediakan ungkapan biasa dan rentetan untuk dicari dengan betul tetapi masih melihat ralat "Argumen tidak sah dibekalkan untuk preg_match()", sila pastikan:

  • Anda tidak menggunakan sintaks yang tidak sah dalam ungkapan biasa.
  • Anda telah mengalih keluar sepenuhnya ruang kosong yang tidak diperlukan dalam regex.
  • Versi PHP anda menyokong fungsi preg_match().
  1. Ringkasan

Dalam aplikasi PHP, anda mungkin menggunakan fungsi preg_match() untuk mencari dan memadankan ungkapan biasa. Anda mungkin menghadapi ralat "Argumen tidak sah dibekalkan untuk preg_match()" apabila anda tidak membekalkan argumen kepada fungsi preg_match() dengan betul. Untuk menyelesaikan masalah ini, anda perlu memastikan bahawa anda menyediakan ungkapan biasa dan rentetan untuk mencari dalam dengan betul, dan tiada ralat sintaks atau ruang tidak sah.

Atas ialah kandungan terperinci Penyelesaian kepada Amaran PHP: Argumen tidak sah dibekalkan untuk preg_match(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn