পিএইচপি মধ্যে একটি পূর্ণসংখ্যা রূপান্তর


501

পিএইচপি-তে কোনও সংখ্যাকে কোনও স্ট্রিংয়ে রূপান্তর করার কোনও উপায় আছে কি?


8
পিএইচপি আলগা টাইপ করা হয়। যা একবার পূর্ণসংখ্যা ছিল তা স্ট্রিংও হতে পারে যেমন আপনি যখন echoএটি (তথাকথিত স্ট্রিং প্রসঙ্গে ব্যবহৃত হয় )।
হ্যাক্রে

2
@hakre হ্যাঁ পিএইচপি আলগাভাবে টাইপ করা হয় এবং প্রতিধ্বনিটি স্ট্রিং প্রসঙ্গে মুদ্রণ করবে। তবে এটি অভ্যন্তরীণভাবে কোনও ভেরিয়েবলের ডেটাটাইপ পরিবর্তন করে না। সুতরাং, স্ট্রভাল ($ ভেরিয়েবল) সঠিক।
vivek_23

@ বিবেক: অভ্যন্তরীণভাবেও strval()পরিবর্তন করে $variableনা।
hakre

2
আমার অর্থ $ ভেরিয়েবল = স্ট্রਵਲ ($ ভেরিয়েবল);
vivek_23

উত্তর:


781

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";

2
ভাল যুক্তি. এটি পরিষ্কার করার জন্য আমি সেখানে কিছু মাইএসকিএল_স্কেপ_ স্ট্রিং ফাংশন ছুড়েছি।
ক্রিস থম্পসন

6
মাইএসকিএল_সেস্কেপ_ স্ট্রিংটি চরসেট উপেক্ষা করার কারণে হ্রাস করা হয়েছে বলে সম্পাদিত।
Kzqai

7
ইনজেকশন আক্রমণগুলি এড়াতে এবং এড়ানোর জন্য যে কেউ এই উদাহরণটির দিকে তাকান তার জন্য @ কেজকাই, আমি বলব স্ট্রিংগুলি থেকে
বাঁচতে

22
5 বছর পরে আমি শেষ পর্যন্ত এসকিউএল উদাহরণটি সরিয়ে দিয়েছি কারণ এটি প্রশ্নের উত্তর দেওয়া অপ্রয়োজনীয় ছিল এবং বিভ্রান্তির পরিচয় দিয়েছে।
ক্রিস থম্পসন

3
সতর্কতা !! STRING কখন রূপান্তর আপনি নির্দিষ্ট সংখ্যায় পাস যদি পিএইচপি তাদের ধরপাকড় হবে: strval(0.999999997)আয় 1
danielson317

86

এটি করার অনেক উপায় আছে।

দুটি উদাহরণ:

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

আরও জানার জন্য পিএইচপি ম্যানুয়াল টাইপ জাগলিং দেখুন।


25
@ জাজারাস যদি $ var 0 (শূন্য) এর সমান হয় তবে এটি একটি খালি স্ট্রিং হয়ে যায়। সমস্যাযুক্ত।
সাইমন ফোরসবার্গ

5
রূপান্তর 0করার ""খারাপ না হতে পারে; এটি সত্যই অ্যাপ্লিকেশন উপর নির্ভর করে। বলেছিল, তুমি একটা ভাল কথা বল
ডাব্লুএনরোজেনবার্গ

2
$ চ = 0; প্রতিধ্বনি "$ চ"; আমার সাথে ভাল কাজ করে, শূন্য এখনও শূন্য থাকে। সুতরাং আমি "$ var" কে একটি স্মার্ট / দরকারী উত্তর হিসাবে বিবেচনা করি 99
মেলসি

45
$foo = 5;

$foo = $foo . "";

এখন $fooএকটি স্ট্রিং।

তবে, আপনি ingালাই করতে অভ্যস্ত হতে চাইতে পারেন। যেমন ingালাই হ'ল এই ধরণের কিছু সম্পাদনের উপযুক্ত উপায়:

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

আরেকটি উপায় হ'ল উদ্ধৃতিগুলিতে আবদ্ধ হওয়া:

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

এত অবিশ্বাস্যরকম যে আমরা উভয়ই বেছে নিয়েছিলাম 5 এছাড়াও, জাভা হয়।
karim79

আমি মনে করি আপনি সেখানে ভাষাগুলির মধ্যে আপনার যুক্তিযুক্ত বাক্য গঠন মিশ্রিত করছেন।
জেসন

6
আমি ingালাইয়ের দিকে ঝুঁকছি, কেবল কারণ এটি আপনার উদ্দেশ্যগুলি সুস্পষ্ট করে তোলে। কাস্টিংয়ের একটি এবং একমাত্র উদ্দেশ্য রয়েছে: প্রকার পরিবর্তন করা। অন্যান্য উদাহরণগুলি প্রায়শই ভুলগুলির মতো দেখতে পাওয়া যায়, কিছু প্রসঙ্গে।
ফ্রাঙ্ক ফার্ম

আমার জন্য কাজ করেছেন ..
thnx

10

পিএইচপি-তে কোনও পূর্ণসংখ্যাকে "রূপান্তর" করার বিভিন্ন উপায় রয়েছে।

Traditionalতিহ্যবাহী কম্পিউটার বিজ্ঞানের উপায় হ'ল ভেরিয়েবলটিকে স্ট্রিং হিসাবে নিক্ষেপ করা:

$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";

আপনি পিএইচপি-র অন্তর্নিহিত ধরণের রূপান্তর এবং স্ট্রিং ইন্টারপোলেশনের সুবিধাও নিতে পারেন:

$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";

আমি চূড়ান্ত বিকল্পটির পরামর্শ দেব না, তবে আমি বুনোয় কোডটি দেখেছি যা এই আচরণের উপর নির্ভর করে, তাই ভেবেছিলাম আমি এটি পাস করব।


9

এই সমস্ত উত্তর দুর্দান্ত তবে মানটি শূন্য হলে এগুলি সকলেই আপনাকে একটি খালি স্ট্রিং ফিরিয়ে দেয়।

নিম্নলিখিত চেষ্টা করুন:

    $v = 0;

    $s = (string)$v ? (string)$v : "0";

2
নোট করুন যে প্রশ্নটি বিশেষত 'পূর্ণসংখ্যাকে রূপান্তর করছে', ভাসমান নয়। :)
মাইক্রোপ্রসেসর বিড়াল 16

1
দয়া করে ভুল সংশোধন করুন। সঠিক ফর্মটি হওয়া উচিত: $ s = (স্ট্রিং) $ v? (স্ট্রিং) $ v: "0";
নিন্টাইফান

7

ব্যবহার করুন:

$intValue = 1;
$string = sprintf('%d', $intValue);

বা এটি হতে পারে:

$string = (string)$intValue;

বা:

settype(&$intValue, 'string');

4

অনেকগুলি সম্ভাব্য রূপান্তর পদ্ধতি রয়েছে:

$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123

4

আপনি হয় পিরিয়ড অপারেটরটি ব্যবহার করতে পারেন এবং এতে একটি স্ট্রিং সংযুক্ত করতে পারেন (এবং এটি স্ট্রিংয়ে টাইপ করা হবে):

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

অথবা, আরও সঠিকভাবে, আপনি কেবল একটি স্ট্রিংয়ের জন্য পূর্ণসংখ্যা কাস্ট করতে পারেন:

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

0

যেমন উত্তরগুলি দুর্দান্তভাবে দেখায়, হ্যাঁ, বেশ কয়েকটি উপায় রয়েছে। তবে, পিএইচপি-তে আপনার খুব কমই আসলে এটি করা প্রয়োজন। পিএইচপি লেখার "কূটনৈতিক উপায়" হ'ল ভাষার আলগা টাইপিং সিস্টেমের উপর নির্ভর করা, যা প্রয়োজন অনুসারে স্বচ্ছভাবে প্রকারটিকে বাধ্য করবে। পূর্ণসংখ্যার মানগুলির জন্য, এটি সাধারণত ঝামেলা ছাড়াই। যদিও আপনার ভাসমান পয়েন্টের মানগুলির সাথে খুব সতর্ক হওয়া উচিত।


আমি মনে করি না যে পিএইচপি সমস্ত সময় স্ট্রিংয়ের জন্য কোনও পূর্ণসংখ্যাকে বাধ্য করবে। এটি এটির জন্য করবে strlen(12345);তবে $x = 12345; echo $x[2];এই সমস্ত কাস্টিং ফাংশন কার্যকর নয় এবং প্রচুর প্রোগ্রামার তাদের প্রকারটি আরও বেশি করে পরীক্ষা করছে।
এলজো ভালুগি

0

আপনি কেবল নিম্নলিখিতটি ব্যবহার করতে পারেন:

$intVal = 5;
$strVal = trim($intVal);

0

আমি বলব এটি প্রসঙ্গে নির্ভর করে। strval () বা the অপারেটর (স্ট্রিং) ব্যবহার করা যেতে পারে। তবে, বেশিরভাগ ক্ষেত্রে পিএইচপি সিদ্ধান্ত নেবে আপনার পক্ষে ভাল কি, উদাহরণস্বরূপ, আপনি যদি এটি প্রতিধ্বনি বা প্রিন্টএফ দিয়ে ব্যবহার করেন ...

একটি ছোট নোট: ডাই () এর একটি স্ট্রিং দরকার এবং কোনও প্রকার দেখায় না :)


"বেশিরভাগ ক্ষেত্রে পিএইচপি আপনার পক্ষে ভাল কি সিদ্ধান্ত নেবে" আশ্চর্যজনক
:,

0
$amount = 2351.25;
$str_amount = "2351.25";

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

সুতরাং প্রতিধ্বনি প্রত্যাবর্তন করতে হবে স্ট্রিং


পুনরায় " স্ট্রিং ": আক্ষরিক বা টাইপ? অথবা অন্য কিছু? আপনি কি এটি আরও পরিষ্কার করতে পারেন ( আপনার উত্তর সম্পাদনা করে )?
পিটার মর্টেনসেন

@ পিটার মর্টেনসেন মন্তব্যটির জন্য ধন্যবাদ "রিটার্ন টাইপ" এর অর্থ আপনার মানটি একটি নতুন ভেরিয়েবলের স্ট্রিং হিসাবে রূপান্তরিত হওয়া উচিত। তাই আমি স্ট্রিং সম্পাদনা করেছি
কৌশিক শ্রীমালী

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.