سؤال

هل هناك طريقة لتحويل عدد صحيح إلى سلسلة في PHP?

هل كانت مفيدة؟

المحلول

ويمكنك استخدام 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";

نصائح أخرى

وهناك العديد من الطرق للقيام بذلك.

وهناك مثالان:

 $str = (string) $int;
 $str = "$int";     

وانظر دليل PHP على أنواع rel="noreferrer"> للحصول على أكثر من ذلك.

$foo = 5;

$foo = $foo . "";

والآن $foo هو سلسلة.

ولكن، قد ترغب في تعتاد على الصب. كما صب هو الطريق الصحيح لتحقيق شيء من هذا القبيل.

$foo = 5;    
$foo = (string)$foo;

وهناك طريقة أخرى للتغليف في الاقتباس:

$foo = 5;
$foo = "$foo"

وهناك عدد من الطرق ل"تحويل" عدد صحيح إلى سلسلة في PHP.

والطريقة التقليدية CS سيكون للادلاء المتغير كسلسلة

$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

ويمكنك إما استخدام المشغل فترة وسلسلة سلسلة لأنها (وسيكون نوع مسبوكة إلى سلسلة):

$integer = 93;
$stringedInt = $integer."";

وأو أكثر بشكل صحيح، يمكنك كتابة فقط يلقي عدد صحيح إلى سلسلة:

$integer = 93;
$stringedInt = (string) $integer;

وأود أن أقول أنه يعتمد على السياق. strval () أو يمكن استخدام مشغل الصب (سلسلة)، ولكن في معظم الحالات PHP سيقرر ماذا يكون جيد بالنسبة لك، على سبيل المثال إذا كنت تستخدم مع الصدى أو printf ... واحد ملاحظة صغيرة: يموت () يحتاج إلى سلسلة ولن تظهر أي الباحث:)

وأما الإجابات هنا يوضح بشكل جيد، نعم، هناك عدة طرق. ومع ذلك، في PHP نادرا ما تحتاج بالفعل للقيام بذلك. "الطريق العقائدية" لكتابة PHP هي الاعتماد على نظام الكتابة فضفاض اللغة، والتي سوف تجبر بشفافية نوع حسب الحاجة. للقيم صحيحة، وهذا هو عادة دون عناء. يجب أن تكون حذرا جدا مع القيم النقطة العائمة، وإن كان.

ويمكنك ببساطة استخدام ما يلي:

$intVal = 5;
$strVal = trim($intVal);
$amount = 2351.25;
$str_amount = "2351.25";

$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);

لذلك صدى سيتم العودة سلسلة

$integer = 93;
$stringedInt = $integer.'';

وأسرع من

$integer = 93;
$stringedInt = $integer."";
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top