มีวิธีการแปลงจำนวนเต็มเป็นสตริงใน PHP หรือไม่
strval()
ไม่เปลี่ยนทั้ง $variable
ภายใน
มีวิธีการแปลงจำนวนเต็มเป็นสตริงใน PHP หรือไม่
strval()
ไม่เปลี่ยนทั้ง $variable
ภายใน
คำตอบ:
คุณสามารถใช้strval()
ฟังก์ชันเพื่อแปลงตัวเลขเป็นสตริง
จากมุมมองการบำรุงรักษามันชัดเจนว่าคุณกำลังพยายามทำอะไรมากกว่าคำตอบที่ลึกลับกว่า แน่นอนมันขึ้นอยู่กับบริบทของคุณ
$var = 5;
// Inline variable parsing
echo "I'd like {$var} waffles"; // = "I'd like 5 waffles
// String concatenation
echo "I'd like ".$var." waffles"; // I'd like 5 waffles
// Explicit cast
$items = (string)$var; // $items === "5";
// Function call
$items = strval($var); // $items === "5";
strval(0.999999997)
1
มีหลายวิธีในการทำเช่นนี้
สองตัวอย่าง:
$str = (string) $int;
$str = "$int";
ดูคู่มือ PHP เกี่ยวกับประเภทการเล่นปาหี่เพิ่มเติม
0
ไปใช้""
อาจไม่เลว มันขึ้นอยู่กับแอพพลิเคชั่นจริงๆ ที่กล่าวว่าคุณทำให้เป็นจุดที่ดี
$foo = 5;
$foo = $foo . "";
ตอนนี้$foo
เป็นสตริง
แต่คุณอาจต้องชินกับการคัดเลือกนักแสดง การคัดเลือกนักแสดงเป็นวิธีที่เหมาะสมในการทำสิ่งนั้นให้สำเร็จ:
$foo = 5;
$foo = (string)$foo;
อีกวิธีหนึ่งคือแค็ปซูลในเครื่องหมายคำพูด:
$foo = 5;
$foo = "$foo"
มีหลายวิธีในการ "แปลง" จำนวนเต็มเป็นสตริงใน PHP
วิธีวิทยาการคอมพิวเตอร์แบบดั้งเดิมคือการโยนตัวแปรเป็นสตริง:
$int = 5;
$int_as_string = (string) $int;
echo $int . ' is a '. gettype($int) . "\n";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
คุณสามารถใช้ประโยชน์จากการแปลงชนิดโดยนัยของ PHP และการแก้ไขสตริง:
$int = 5;
echo $int . ' is a '. gettype($int) . "\n";
$int_as_string = "$int";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
$string_int = $int.'';
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
ในที่สุดคล้ายกับข้างต้นฟังก์ชั่นใด ๆ ที่ยอมรับและส่งกลับสตริงสามารถใช้ในการแปลงและจำนวนเต็ม พิจารณาสิ่งต่อไปนี้:
$int = 5;
echo $int . ' is a '. gettype($int) . "\n";
$int_as_string = trim($int);
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
ฉันจะไม่แนะนำตัวเลือกสุดท้าย แต่ฉันได้เห็นโค้ดในไวด์ซึ่งอาศัยการทำงานนี้ดังนั้นคิดว่าฉันจะผ่านมันไป
คำตอบทั้งหมดนี้ยอดเยี่ยม แต่พวกเขาทั้งหมดจะคืนค่าสตริงว่างให้คุณหากค่าเป็นศูนย์
ลองทำสิ่งต่อไปนี้:
$v = 0;
$s = (string)$v ? (string)$v : "0";
ใช้:
$intValue = 1;
$string = sprintf('%d', $intValue);
หรืออาจเป็น:
$string = (string)$intValue;
หรือ:
settype(&$intValue, 'string');
มีวิธีการแปลงที่เป็นไปได้มากมาย:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
คุณสามารถใช้ตัวดำเนินการรอบระยะเวลาและเชื่อมสตริงเข้าด้วยกัน (และมันจะเป็นชนิด casted กับสตริง):
$integer = 93;
$stringedInt = $integer . "";
หรืออย่างถูกต้องมากขึ้นคุณเพียงแค่พิมพ์ cast จำนวนเต็มสตริง
$integer = 93;
$stringedInt = (string) $integer;
เป็นคำตอบที่แสดงให้เห็นว่าใช่มีหลายวิธี อย่างไรก็ตามใน PHP คุณไม่ค่อยจำเป็นต้องทำเช่นนั้นจริงๆ "วิธีดันทุรัง" ในการเขียน PHP นั้นขึ้นอยู่กับระบบการพิมพ์ของภาษาที่หลวมซึ่งจะบีบบังคับชนิดที่ชัดเจนตามที่ต้องการ สำหรับค่าจำนวนเต็มมักจะไม่มีปัญหา คุณควรระมัดระวังในเรื่องค่าทศนิยม
strlen(12345);
แต่ไม่ใช่สำหรับ$x = 12345; echo $x[2];
ฟังก์ชั่นการคัดเลือกทั้งหมดนี้มีประโยชน์มากและโปรแกรมเมอร์จำนวนมากกำลังตรวจสอบประเภทของพวกเขามากขึ้นเรื่อย ๆ
คุณสามารถใช้สิ่งต่อไปนี้:
$intVal = 5;
$strVal = trim($intVal);
ฉันจะบอกว่ามันขึ้นอยู่กับบริบท strval () หรือตัวดำเนินการแคสต์ (สตริง) สามารถใช้ได้ อย่างไรก็ตามในกรณีส่วนใหญ่ PHP จะตัดสินว่าอะไรดีสำหรับคุณถ้าเช่นคุณใช้กับ echo หรือ printf ...
หมายเหตุเล็กน้อยหนึ่ง: die () ต้องการสตริงและจะไม่แสดง int ใด ๆ :)
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
ดังนั้นก้องจะเป็นผลตอบแทนสตริง
$integer = 93;
$stringedInt = $integer.'';
เร็วกว่า
$integer = 93;
$stringedInt = $integer."";
echo
(ใช้ในบริบทสตริงที่เรียกว่า)