Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP ประเภท Juggling


ความหมายและการใช้งาน

PHP เป็นที่รู้จักในฐานะภาษาที่พิมพ์แบบไดนามิก การประกาศประเภทตัวแปรที่ชัดเจนนั้นไม่จำเป็นและไม่รองรับใน PHP ตรงกันข้ามกับ C, C++ และ Java ประเภทของตัวแปร PHP จะถูกกำหนดโดยค่าที่กำหนด ไม่ใช่วิธีอื่น นอกจากนี้ ตัวแปรเมื่อกำหนดค่าประเภทต่าง ๆ ประเภทของตัวแปรก็เปลี่ยนแปลงเช่นกัน แนวทางของ PHP เพื่อจัดการกับค่าที่เปลี่ยนแปลงแบบไดนามิกของตัวแปรนี้เรียกว่าการเล่นกลประเภท

$var="Hello"; // variable is string type
$var=100; //same variable now becomes int

การเล่นกลประเภทยังเกิดขึ้นระหว่างการคำนวณนิพจน์ ในตัวอย่างนี้ ตัวแปรสตริงที่มีตัวเลขจะถูกแปลงเป็นจำนวนเต็มโดยอัตโนมัติสำหรับการประเมินนิพจน์การบวก

ตัวอย่าง

<?php
$var1=100;
$var2="100";
$var3=$var1+$var2;
var_dump($var3);
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

int(200)

หากสตริงเริ่มต้นด้วยตัวเลข อักขระที่ไม่ใช่ตัวเลขต่อท้าย หากมี จะถูกละเว้นขณะทำการคำนวณ อย่างไรก็ตาม PHP parser จะออกประกาศดังที่แสดงด้านล่าง

ตัวอย่าง

<?php
$var1=100;
$var2="100 days";
$var3=$var1+var2;
var_dump($var3);
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

PHP Notice: A non well formed numeric value encountered in ...
int(200)

การหล่อแบบบังคับให้ตัวแปรถูกใช้เป็นบางประเภท สคริปต์ต่อไปนี้แสดงตัวอย่างตัวดำเนินการแคสต์ประเภทต่างๆ

ตัวอย่าง

<?php
$var1=100;
$var2=(boolean)$var1;
$var3=(string)$var1;
$var4=(array)$var1;
$var5=(object)$var1;
var_dump($var2, $var3, $var4, $var5);
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

bool(true)
string(3) "100"
array(1) {
   [0]=>
   int(100)
}
object(stdClass)#1 (1) {
   ["scalar"]=>
   int(100)
}

การแคสต์ตัวแปรเป็นสตริงสามารถทำได้โดยการใส่เครื่องหมายอัญประกาศคู่

ตัวอย่าง

<?php
$var1=100.50;
$var2=(string)$var1;
$var3="$var1";
var_dump($var2, $var3);
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

string(5) "100.5"
string(5) "100.5"