Rumah >rangka kerja php >ThinkPHP >kaedah thinkphp3.2.3 u melepasi parameter

kaedah thinkphp3.2.3 u melepasi parameter

WBOY
WBOYasal
2023-05-29 11:02:37770semak imbas

Thinkphp3.2.3 ialah rangka kerja PHP sumber terbuka yang popular yang boleh membangunkan aplikasi web dengan mudah dan menyediakan fungsi pembangunan aplikasi yang kaya. Dalam Thinkphp3.2.3, kaedah u ialah fungsi yang sangat biasa digunakan untuk menjana laluan URL Apabila menggunakan kaedah u, kami mungkin perlu menghantar beberapa parameter ke URL Artikel ini akan memperkenalkan cara menggunakan kaedah u untuk lulus dalam Thinkphp3 .2.3 parameter.

1. Pengenalan kepada kaedah u

Dalam Thinkphp3.2.3, kaedah u digunakan untuk menjana laluan URL, dan sintaksnya adalah seperti berikut:

u('控制器/操作方法', '参数', '伪静态后缀', '是否显示域名')

Antaranya , kaedah pengawal/operasi ditentukan Kaedah pengawal dan tindakan bagi laluan URL yang akan dijana, parameter menentukan parameter yang akan dihantar kepada kaedah tindakan, akhiran pseudo-statik menentukan akhiran URL yang dijana (seperti . html), sama ada untuk memaparkan nama domain menentukan sama ada untuk memasukkan nama domain dalam URL.

2. Lulus parameter dalam kaedah u

Dalam Thinkphp3.2.3, kita boleh menggunakan jenis data seperti tatasusunan, rentetan atau objek untuk menghantar parameter. Di bawah ini kami akan memperkenalkan cara menggunakan jenis data ini untuk menghantar parameter.

1 Gunakan tatasusunan untuk menghantar parameter

Apabila menggunakan tatasusunan untuk menghantar parameter, kita boleh menghantar parameter kepada kaedah u sebagai tatasusunan bersekutu. Contohnya:

$params = array(
    'id' => 1,
    'name' => 'Tom'
);
$url = u('user/detail', $params);

Dalam kod di atas, $params ialah tatasusunan bersekutu yang mengandungi dua pasangan nilai kunci. Kami menghantar $params sebagai parameter kepada kaedah u untuk menjana laluan URL. Dalam kaedah pengendalian pengawal, kita boleh menggunakan tatasusunan super global $_GET untuk mendapatkan parameter ini, seperti berikut:

class UserController extends Controller{
    public function detail(){
        $id = $_GET['id'];
        $name = $_GET['name'];
        // do something
    }
}

2. Gunakan rentetan untuk menghantar parameter

Apabila menggunakan rentetan untuk menghantar parameter, Kita boleh menyambung parameter terus ke laluan URL, contohnya:

$url = u('user/detail', 'id=1&name=Tom');

Dalam kaedah pengendalian pengawal, kita boleh menggunakan fungsi parse_str untuk menghuraikan parameter ke dalam tatasusunan, seperti berikut:

class UserController extends Controller{
    public function detail(){
        parse_str($_SERVER['QUERY_STRING'], $params);
        $id = $params['id'];
        $name = $params['name'];
        // do something
    }
}

3 , Gunakan objek untuk lulus parameter

Apabila menggunakan objek untuk lulus parameter, kita boleh menghantar parameter kepada kaedah u sebagai atribut objek. Sebagai contoh:

class User{
    public $id;
    public $name;
}
$user = new User();
$user->id = 1;
$user->name = 'Tom';
$url = u('user/detail', $user);

Dalam kaedah operasi pengawal, kita boleh menggunakan sifat objek untuk mendapatkan parameter ini, seperti berikut:

class UserController extends Controller{
    public function detail(){
        $id = $_GET['id'];
        $name = $_GET['name'];
        // do something
    }
}

Langkah Berjaga-jaga

Apabila menggunakan u Apabila menghantar parameter melalui kaedah, anda perlu memberi perhatian kepada perkara berikut:

1 Jika parameter mengandungi aksara khas (seperti garis miring), anda perlu menggunakan fungsi urlencode untuk pengekodan;

2. Jika parameter mengandungi Aksara Cina perlu dikodkan menggunakan fungsi urlencode, atau set aksara ditetapkan dalam kaedah u, contohnya:

$url = u('user/detail', array('name' => '张三'), '', true, 'utf-8');

Dalam kaedah pengendalian pengawal, anda perlu menggunakan fungsi urldecode untuk menyahkod, contohnya:

$name = urldecode($_GET['name']);

3 Susunan parameter lulus mempunyai kesan pada penjanaan laluan URL Contohnya:

$url1 = u('user/detail', 'id=1&name=Tom');
$url2 = u('user/detail', 'name=Tom&id=1');

Laluan URL yang dihasilkan oleh $url1 dan $url2 akan berbeza.

4. Ringkasan

Di atas adalah kaedah dan langkah berjaga-jaga untuk menggunakan kaedah u untuk lulus parameter dalam Thinkphp3.2.3 Saya harap ia akan membantu pembangunan semua orang. Apabila menggunakan kaedah u untuk lulus parameter, anda perlu memilih jenis parameter yang sesuai mengikut situasi sebenar dan ikuti langkah berjaga-jaga.

Atas ialah kandungan terperinci kaedah thinkphp3.2.3 u melepasi parameter. 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