i
در حال برنامه نویسی و آماده سازی نسخه جدید «وبگو» هستیم، در این نسخه قابلیت ها و ظاهر سایت به کلی متفاوت و کاملتر خواهد بود، این فرآیند زمانبر و از مدتی پیش شروع شده و همچنان ادامه دارد، روند پیشرفت پروژه در این قسمت به صورت درصدی مشخص است و به تناوب به روزرسانی می شود.
آگهی
article

عملگرها (Operators) در PHP

php-operators

مانند بسیاری از زبان های برنامه نویسی، PHP نیز از قوانین و عملگرهای خاصی جهت محاسبه، مقایسه مقادیر و استدلال منطقی استفاده می کند، در بحث پیشین از بخش آموزش های مقدماتی دیدیم که چگونه می توان متغیرها را تعریف و مقادیر آنها را تغییر داد، همچنین گفتیم که مقادیر متغیر می تواند هر نوع داده ای باشد که در کدنویسی برنامه مورد نیاز است (Int، String، Array، Boolean و...) که در PHP مقدار متغیر نوع آن را مشخص می کند، به طور مثال اگر متغیری مقدار عددی داشته باشد نوع آن متغیر نیز به صورت خودکار عدد (Int) در نظر گرفته می شود، به هر صورت در این مطلب می خواهیم ببینیم مفسر PHP چگونه با مقادیر متغیرها محاسبه و آنها را با هم مقایسه می کند، همچنین نگاهی خواهیم داشت به عملگرهای منطقی که جز عملگرهای پرکاربرد در زبان های برنامه نویسی و از جمله PHP هستند.

عملگرهای محاسبه (Arithmetic Operators) در PHP


در PHP با استفاده از علائمی که در ادامه خواهیم دید محاسبات ریاضی را انجام می دهیم، منظور از محاسبات ریاضی عمل جمع، تفریق، ضرب، تقسیم، باقیمانده بخش پذیری و به توان رساندن است که هر کدام از این موارد با یک علامت بخصوص به شرح زیر مشخص می شوند.
برای عمل جمع در PHP از علامت + استفاده می کنیم، به طور مثال:
$a = 5;
$b = 8;
$addition = $a + $b;
در مثال بالا دو متغیر فرضی a و b را با هم جمع کرده ایم که حاصل مقدار 13 خواهد شد (در صورت نیاز برای چاپ خروجی از دستور echo استفاده می کنیم)، همان طور که مشخص است نوع متغیرها به صورت عدد یا Int هستند، اگر یکی از متغیرها از نوع دیگری باشد عمل جمع ممکن است با خطا مواجه شود (اگر مقدار متغیر صرفا یک عدد بوده حتی اگر بین علامت های ' ' و " "  باشد، مفسر PHP به صورت خودکار نوع آن را به Int تبدیل کرده و اشکالی در محاسبه بروز نمی کند، اما اگر مقدار متغیر علاوه بر عدد به همراه رشته متنی باشد، محاسبه دچار اشکال خواهد شد)، همین رویه در مورد علامت های دیگر مربوط به محاسبه در PHP صدق می کند.
برای عمل تفریق در PHP از علامت - استفاده می کنیم:
$a = 5;
$b = 8;
$subtraction = $b - $a;
حاصل مثال بالا مقدار 3 خواهد بود.
برای عمل ضرب در PHP از علامت * استفاده می کنیم:
$a = 5;
$b = 8;
$multiplication = $a * $b;
حاصل مثال بالا مقدار 45 خواهد بود.
برای عمل تقسیم در PHP از علامت / استفاده می کنیم:
$a = 5;
$b = 8;
$division = $b / $a;
حاصل مثال بالا به صورت اعشاری و مقدار 1.6 خواهد بود.
برای بدست آوردن باقیمانده بخش پذیری در PHP از علامت % استفاده می کنیم:
$a = 5;
$b = 8;
$modulus = $b % $a;
حاصل مثال بالا مقدار 3 خواهد بود، چرا که 8 تنها یک بار بر 5 بخش پذیر است (یعنی یک 5 تایی در 8 قابل گنجاندن است) و باقیمانده عدد 3 خواهد بود.
و در نهایت برای به توان رساندن در PHP نیز از علامت ** استفاده می کنیم (این قابلیت در نسخه 5.6 و به بعد در دسترس است):
$a = 5;
$b = 8;
$exponentiation = $a ** $b;
که حاصل برابر با مقدار 390625 خواهد بود.
نکته: فراموش نکنیم که برای گرفتن خروجی در PHP باید از دستور print یا echo استفاده کنیم، در غیر این صورت هیچ مقداری در خروجی چاپ نخواهد شد.
<?php
$a = 5;
$b = 8;
$addition = $a + $b;
echo $addition;
print $addition;
?>

عملگر افزایش و کاهش (Increment/Decrement Operators) در PHP


معمولا در هنگام کدنویسی برنامه ها مواردی پیش می آید که نیاز به افزایش یا کاهش مقدار یک متغیر به میزان یک واحد است، اگرچه در حالت عادی می توانیم این کار را با عملگر جمع یا تفریق انجام دهیم اما برنامه نویسان همیشه به دنبال ساده ترین و در عین حال سریعترین روش ها هستند! از این رو به جهت پرکاربرد بودن این دو عملیات در اغلب زبان های برنامه نویسی عملگرهای جداگانه بدین منظور در نظر گرفته شده است که PHP نیز از این قاعده مستثنا نیست، بر این اساس دو علمگر ++ برای افزایش به میزان یک واحد و عملگر -- جهت کاهش به میزان یک واحد برای این هدف استفاده می شوند، مثال:
$a = 5;
$a++;
$b = 5;
$b--;
دقت کنیم محل قرارگیری علامت ++ و -- در قبل یا بعد از متغیر دارای اهمیت است، اگر علامت قبل از متغیر قرار گیرد، ابتدا مقدار یک واحد افزایش یا کاهش می یابد و سپس مقادیر جدید به اصطلاح برگردانده می شود که به آن Pre Increment/Decrement گفته می شود (Pre به معنی پیش، Increment افزایش و Decrement کاهش)، اما اگر علامت بعد از متغیر قرار گیرد، ابتدا مقادیر برگردانده شده و سپس مقدار یک واحد افزایش یا کاهش می یابد که به آن Post Increment/Decrement گفته می شود (Post به معنی ارسال یا در اصطلاح برنامه نویسی برگرداندن)، مثال:
<?php
$a = 5;
echo $a++;
echo '<br>';
$b = 5;
echo $b--;
echo '<br>';
$a = 5;
echo ++$a;
echo '<br>';
$b = 5;
echo --$b;
?>
که نتیجه به صورت زیر خواهد بود.
5
5
6
4
در دو حالت اول ابتدا مقدار متغیر چاپ شده و سپس عملگر افزایش یا کاهش اعمال می شود، اما در دو حالت دوم ابتدا عملگر افزایش یا کاهش اعمال شده و سپس متغیر در خروجی چاپ می شود.

عملگرهای اختصاص دهنده (Assignment Operators) در PHP


در مباحث پیشین گفتیم که برای اختصاص یک مقدار به متغیر از علامت = در PHP استفاده می شود، علامت مساوی را در اصطلاح Assignment Operator یا علامت اختصاص دهنده می گویند، در ادامه خواهیم دید که می توانیم عملگرهای محاسبه و مساوی را با هم ترکیب نموده و عمل محاسبه و اختصاص را به صورت مختصر نویسی انجام دهیم، شیوه مختصرنویسی جهت خواناتر شدن سورس ها و پرهیز از نوشتن کدهای اضافه در برنامه نویسی مورد نیاز است.
علامت =+ معادل عملگر + (جمع) و عملگر = (اختصاص) است، با ترکیب این دو علامت می توانیم ابتدا متغیر را با مقادیر مورد نظر جمع کرده و سپس مقدار جدید را به آن اختصاص دهیم، مثال:
//شیوه عادی
$a = $a + 5;
//شیوه مختصرنویسی
$a += 5;
در صورتی که با دستور echo از متغیر a خروجی بگیریم، با فرض اینکه مقدار اولیه آن برابر با 1 باشد، پس از اعمال عملگر ترکیبی =+ مقدار نهایی برابر با 6 خواهد شد، یادآور می شویم که در نتیجه هیچ تفاوتی بین دو شیوه وجود ندارد، صرفا به جهت خوانا و مختصرنویسی کدها است که استفاده از شیوه ترکیبی در موارد نیاز توصیه می شود.
نکته: علامت + و سایر عملگرهای محاسباتی در شیوه مختصرنویسی باید الزاما قبل از علامت = قرار گیرند، در غیر این صورت عملگر ترکیبی به صورت مورد نظر نتیجه نخواهد داد.
علامت =- معادل عملگر - (تفریق) و عملگر = (اختصاص) است، مثال:
//شیوه عادی
$a = $a - 5;
//شیوه مختصرنویسی
$a -= 5;
علامت =* معادل عملگر * (ضرب) و عملگر = (اختصاص) است، مثال:
//شیوه عادی
$a = $a * 5;
//شیوه مختصرنویسی
$a *= 5;
علامت =/ معادل عملگر / (تقسیم) و عملگر = (اختصاص) است، مثال:
//شیوه عادی
$a = $a / 5;
//شیوه مختصرنویسی
$a /= 5;
علامت =% معادل عملگر % (باقیمانده بخش پذیری) و عملگر = (اختصاص) است، مثال:
//شیوه عادی
$a = $a % 5;
//شیوه مختصرنویسی
$a %= 5;
نکته: برای مقداردهی به متغیرهای رشته ای از علامت ترکیبی =. (Concatenation Assignment) استفاده می شود، PHP بر خلاف JavaScript برای رشته متنی و عدد دو علامت ترکیبی مجزا دارد (در جاوا اسکریپت از علامت =+ هم برای رشته و هم عدد می توانیم استفاده کنیم اما در PHP علامت =+ برای متغیرهای عددی و علامت =. برای متغیرهای رشته ای به کار می رود)، مثال:
//شیوه عادی
$a = $a . 'String';
//شیوه مختصرنویسی
$a .= 'String';

عملگرهای مقایسه (Comparison Operators) در PHP


حال که با علائم محاسباتی و اختصاص دهنده در PHP آشنا شدیم نوبت به فراگیری اصول مقایسه ای است، اما اساسا مقایسه در برنامه نویسی چه فایده ای دارد؟! برای اینکه درک کلی و روشنی از مقایسه و فایده آن در PHP داشته باشیم آموزش را با مثالی ادامه می دهیم، فرض کنیم تعدادی از کاربران وبسایتمان عضو کشوری خاص هستند (اطلاعات آنها در پایگاه داده سایت موجود است)، حال می خواهیم به مفسر PHP بگوییم که اگر کشور کاربر برابر آن عبارت بود امکانات خاصی را برای او نمایش دهد یا زبان سایت را متناسب با زبان کشور او تنظیم نماید، امکان این کار تنها در صورت مقایسه کشور کاربر با عبارتی که مد نظر داریم فراهم می شود و به طور ساده خواهیم نوشت: اگر کشور کاربر برابر عبارت x بود زبان سایت را y قرار بده و...، در برنامه نویسی بررسی این برابر بودن یا نبودن با دستورات شرطی (Conditional Statement) و عملگرهای مقایسه ای (Comparison Operators) انجام می شود، با دستورات شرطی در مباحث آینده آشنا خواهیم شد اما عملگرهای مقایسه ای را در ادامه به صورت موردی بررسی می کنیم.
برای مقایسه برابری مقدار دو طرف رابطه از علامت == در PHP استفاده می کنیم، مثال:
$a = 5;
$b = 5;
($a == $b)
در مثال بالا برابر بودن مقدار متغیر a را با b مقایسه کرده ایم که این مقایسه درست (true) خواهد بود، چون مقدار هر دو متغیر 5 است، با علامت == مقایسه را می توان برای مقادیر رشته ای / عددی نیز انجام داد، به طور مثال مقایسه زیر نیز درست (true) خواهد بود، هرچند نوع متغیر a به صورت عددی (Int) و نوع متغیر b به صورت رشته ای (String) است، به عبارت ساده تر در عملگر == نوع متغیرها لحاظ نمی شود و صرفا مقدار آنها با هم مقایسه می شود.
<?php
$a = 5;
$b = '5';
if($a == $b){
    echo 1;
}else{
    echo 0;
}
?>
که مقدار 1 در خروجی چاپ خواهد شد.
برای مقایسه برابر بودن دو طرف رابطه از هر جهت (نوع و مقدار) از علامت === استفاده می کنیم، مثال:
$a = 5;
$b = '5';
($a === $b)
در مثال بالا عدد 5 را به صورت عددی (Int) با عدد '5' به صورت رشته ای (String) با عملگر === مقایسه کرده ایم، نتیجه بر خلاف آنچه در مورد عملگر == دیدیم نادرست (false) خواهد بود، به این دلیل که عملگر === برابری دو طرف رابطه را از هر لحاظ (نوع و مقدار) بررسی می کند و اگر نوع یا مقدار دو متغیر یکسان نباشد، نتیجه نادرست (false) خواهد بود.
برای مقایسه برابر نبودن دو طرف رابطه از علامت =! در PHP استفاده می کنیم:
$a = 5;
$b = 5;
($a != $b)
مقایسه بالا یعنی اگر متغیر a برابر b نباشد رابطه برقرار (true) است، اما رابطه بالا برقرار نیست و نتیجه نادرست (false) است، چرا که مقدار هر دو متغیر 5 و برابر هستند، در صورتی که ما نابرابری آنها را مقایسه کرده ایم.
نکته: علامت <> نیز در PHP برای مقایسه برابر نبودن دو طرف رابطه استفاده می شود، این حالت چندان متداول نیست اما کارکردی مشابه با علامت =! دارد.
برای مقایسه برابر نبودن دو طرف رابطه از هر جهت (نوع و مقدار) از علامت ==! استفاده می کنیم، مثال:
$a = 5;
$b = '5';
($a !== $b)
در مثال بالا عدد 5 را به صورت عددی (Int) با عدد '5' به صورت رشته ای (String) با عملگر ==! مقایسه کرده ایم، نتیجه بر خلاف آنچه در مورد عملگر =! دیدیم درست (true) خواهد بود، به این دلیل که عملگر ==! نابرابری دو طرف رابطه را از هر لحاظ (نوع و مقدار) بررسی می کند و اگر نوع یا مقدار دو متغیر یکسان نباشد، رابطه نابرابر و نتیجه درست (true) خواهد بود.
برای مقایسه کوچکتر بودن از علامت > در PHP استفاده می کنیم، مثال:
$a = 5;
$b = 8;
($a < $b)
با توجه به مثال بالا، متغیر a از متغیر b کوچکتر است و مقایسه درست (true) خواهد بود.
برای مقایسه بزرگتر بودن از علامت < در PHP استفاده می کنیم، مثال:
$a = 5;
$b = 8;
($a > $b)
بر این اساس رابطه بالا نادرست (false) است، چرا که مقدار متغیر a برابر با 5 و از متغیر b که مقدار آن 8 است بزرگتر نیست، بنابر این رابطه برقرار نمی باشد.
برای مقایسه کوچکتر مساوی از علامت => در PHP استفاده می کنیم، مثال:
$a = 5;
$b = 8;
($a <= $b)
بر اساس مثال بالا، متغیر a از b کوچکتر است اما مساوی نیست، با این حال این رابطه درست (true) خواهد بود چرا که کافی است یکی از شرایط مقایسه صحیح باشد تا کل آن صحیح (true) فرض شود، به عبارتی عملگر => یعنی کوچکتر یا مساوی.
برای مقایسه بزرگتر مساوی بودن نیز از علامت =< در PHP استفاده می کنیم، مثال:
$a = 5;
$b = 8;
($a >= $b)
با توجه به مثال بالا، متغیر a بزرگتر یا مساوی با b نیست، پس هیچ کدام از پارامترهای این مقایسه برقرار نیست و نتیجه نادرست یا false خواهد بود.

عملگرهای منطقی (Logical Operators) در PHP


عملگرهای منطقی (Logical Operators) در PHP مانند اغلب زبان های برنامه نویسی نقش مکمل را برای عملگرهای مقایسه ای دارند و نتیجه یک یا چند مقایسه را به صورت true یا false برمی گردانند، بر همین اساس در حالت true نیازی به استفاده از علامت خاصی در Syntax نیست اما برای حالت false از علامت ! (نباشد) در ابتدای مقایسه استفاده می کنیم، برای مقایسه چندگانه نیز علامت && (و) و علامت || (یا) کاربرد دارند، همچنین PHP از عبارات دستوری متنی (and، or و xor) نیز پشتیبانی می کند، مثال های زیر به درک موضوع کمک خواهند کرد.
($a > 12)
عبارت بالا یعنی اگر متغیر a بزرگتر از 12 باشد رابطه برقرار و مقدار true برگردانده می شود، در این حالت نیازی به استفاده از علامت خاصی نیست، در واقع عملگر منطقی در این مقایسه استفاده نشده است!
!($a > 12)
عبارت بالا یعنی اگر متغیر a بزرگتر از 12 نباشد رابطه برقرار و مقدار true برگردانده می شود، همان طور که مشخص است در این مقایسه از علامت منطقی ! استفاده شده است.
($a > 12 && $a < 20)

($a > 12 and $a < 20)
عبارت بالا یعنی اگر متغیر a بزرگتر از 12 و در عین حال کوچکتر از 20 باشد رابطه برقرار و مقدار true برگردانده می شود، در این رابطه برای بررسی چندگانه از علامت && و عبارت دستوری and استفاده کرده ایم و در صورتی کل این رابطه برقرار و true است که نتیجه هر دو مقایسه true باشد، تنها تفاوت علامت && و عبارت دستوری and حالت تقدم (Precedence) آنها در مفسر PHP است که علامت && نسبت به and مقدم است، این تفاوت زمانی مشخص می شود که عملگرهای منطقی را با عملگر اختصاص دهنده = در یک قسمت استفاده کنیم، به طور مثال خروجی متغیر a در مثال زیر در حالت اول برابر با false و در حالت دوم برابر با true خواهد بود و دلیل این تفاوت تقدم و تاخر پردازش عملگرها نسبت به هم در مفسر PHP است (علامت && نسبت به = مقدم و علامت = نسبت به and مقدم است):
<?php
$a = null;
$b = true;
$c = false;

$a = $b && $c;
var_dump($a);
$a = $b and $c;
var_dump($a);
?>
نتیجه نمونه کد بالا به صورت زیر خواهد بود.
boolean false
boolean true
در حالت اول ابتدا مقایسه با عملگر && صورت گرفته و سپس مقدار برگردانده شده با عملگر = به متغیر a نسبت داده می شود اما در حالت دوم ابتدا مقدار a به عنوان خروجی برگردانده شده و سپس مقایسه با عملگر and صورت می گیرد که در خروجی تاثیری ندارد (توجه کنیم در حالت دوم نیز در نهایت مقدار متغیر a برابر با false خواهد بود و اگر در قسمت های دیگر برنامه از آن استفاده کنیم به صورت flase اثرگذار است، در اینجا صرفا بحث تقدم و تاخر عملگرها است و اینکه کدام یک ابتدا پردازش و اعمال می شوند)، در ادامه به بررسی سایر عملگرهای منطقی می پردازیم.
($a > 12 || $a < 20)

($a > 12 or $a < 20)
عبارت بالا یعنی اگر متغیر a بزرگتر از 12 یا کوچکتر از 20 باشد رابطه برقرار و مقدار true برگردانده می شود، در این رابطه برای بررسی چندگانه از علامت || و عبارت دستوری or استفاده کرده ایم و در صورتی کل این رابطه برقرار و true است که نتیجه یکی از دو مقایسه true باشد، مانند علامت && و and تنها تفاوت علامت || و عبارت دستوری or حالت تقدم پردازش آنها در مفسر PHP است که علامت || نسبت به or مقدم است، در مجموع استفاده از علامت && و || شیوه معمول و توصیه شده است و برای پرهیز از بروز مشکلات پیش بینی نشده بهتر است از این عملگرها استفاده کنیم.
آخرین عملگر منطقی PHP که با آن آشنا خواهیم شد عبارت دستوری xor است، این عملگر زمانی مقدار true برمی گرداند که فقط یکی از طرفین مقایسه true باشد، به عبارت دیگر در صورتی که هر دو طرف مقایسه true یا false باشند عملگر xor مقدار false را به عنوان نتیجه برمی گرداند.
<?php
$b = true;
$c = false;
$a = $b xor $c;
var_dump($a);
?>
از آنجایی که مقدار متغیر فرضی b به صورت true و مقدار متغیر c به صورت false است، رابطه برقرار بوده و نتیجه مقایسه بالا به صورت زیر خواهد بود.
boolean true
نکته: برای نمایش ساختار پارامترها از تابع var_dump در PHP استفاده می کنیم، این تابع خصوصیات پارامترها را از نظر نوع (Type) و مقدار (Value) در خروجی چاپ می کند و شیوه مرسوم در خطایابی برنامه ها حین کدنویسی است.
sectionدسته بندی: آموزش مقدماتی » PHP
related مطالب بیشتر:
» توابع کار با آرایه در PHP - بخش سوم
» آموزش برنامه نویسی وب با PHP
» توابع کار با آرایه در PHP - بخش اول
» دستورات شرطی if و else در PHP
» توابع کار با آرایه در PHP - بخش دوم
commentنظرات (۲۶ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: امین
زمان: ۲۱:۳۵:۵۱ - تاریخ: ۱۳۹۲/۰۳/۲۴
با سلام
چطوری میشه حاصل تقسیم رو به صورت رند نشون بده؟
مثلا 5 تقسیم بر 2 میشه 2.5 ولی نتیجه رو 2 یا 3 نشون بده (به صورت عدد صحیح)
پاسخ: 
می توانید از تابع
round
و تنظیمات آن در PHP استفاده کنید، مثال:
<?php
echo round(2.5, 0, PHP_ROUND_HALF_UP);//نتیجه: 3
echo round(2.5, 0, PHP_ROUND_HALF_DOWN);//نتیجه: 2
?>
همچنین تابع
ceil
عدد اعشاری را به بالا و تابع
floor
عدد اعشاری را به پائین گرد می کند.
نویسنده: امیر
زمان: ۰۰:۲۷:۱۸ - تاریخ: ۱۳۹۲/۰۴/۰۹
سلام ببخشید اگه سوالمو جای مناسبی طرح نکردم
کد php برای نمایش نام مرورگر وجود داره؟
پاسخ: 
در PHP برای شناسایی اطلاعات مربوط به مرورگر به صورت خام از دو روش زیر استفاده می شود:
<?php
echo @$_SERVER['HTTP_USER_AGENT'];
$browser = get_browser(NULL, TRUE);
print_r($browser);
?>
همان طور که گفتیم، این اطلاعات در ابتدا به صورت خام و پردازش نشده هستند، اما با استفاده از توابعی مانند مثال زیر، می توانید جزئیات مربوط به مرورگر را به تفکیک نام، نسخه اصلی، نسخه فرعی و... استخراج کنید.
<?php
function DetectBrowser(){
$browser_array = array(
'version' => '0.0.0',
'majorver' => 0,
'minorver' => 0,
'build' => 0,
'name' => 'نا مشخص',
'useragent' => NULL
);

$browser_list = array(
'firefox', 'msie', 'opera', 'chrome', 'safari', 'mozilla', 'seamonkey', 'konqueror', 'netscape', 'gecko', 'navigator', 'mosaic', 'lynx', 'amaya', 'omniweb', 'avant', 'camino', 'flock', 'aol'
);

if(isset($_SERVER['HTTP_USER_AGENT'])){
$browser_array['useragent'] = $_SERVER['HTTP_USER_AGENT'];
$user_agent = strtolower($browser_array['useragent']);
foreach($browser_list as $key => $value){
if(preg_match("/($value)[\/ ]?([0-9.]*)/", $user_agent, $match)){
$browser_array['name'] = $match[1];
$browser_array['version'] = $match[2];
@list($browser_array['majorver'], $browser_array['minorver'], $browser_array['build']) = explode('.', $browser_array['version']);
break;
}
}
}
return $browser_array;
}
$result = DetectBrowser();
echo 'مرورگر: '.$result['name'].' نسخه: '.$result['version'];
?>
نویسنده: مومني موگويي
زمان: ۲۲:۵۴:۲۵ - تاریخ: ۱۳۹۲/۰۶/۱۲
عملگر مقايسه اي <> و عملگر ==! به چه معني هستند ميشه توضيح بدين
پاسخ: 
علامت <> به این صورت کاربردی در PHP ندارد (به صورت تک تک به معنی بزرگتر و کوچکتر است)، عملگر ==! نابرابری دو مقدار را از هر لحاظ مقایسه می کند، به فرض '1' با 1 با این عملگر مساوی نیست، چون عدد اول یک string است اما عدد دوم یک int است.
نویسنده: مصطفی
زمان: ۲۰:۳۴:۴۱ - تاریخ: ۱۳۹۲/۰۸/۲۶
سلام
می خواستم بدونم درصد چطور حساب میشه مثلا می خوایم 10 رو ضرب در 40 درصد کنیم
پاسخ: 
اگر منظورتان این است که 40 درصد 10 چقدر می شود، از تابع زیر استفاده کنید:
<?php
function Percentage($total, $percentage){
return $total * ($percentage / 100);
}
echo Percentage(10, 40)
?>
نویسنده: مسعود
زمان: ۱۴:۰۷:۳۲ - تاریخ: ۱۳۹۲/۱۱/۰۱
ببخشید با زبان php میشه نرم افزار تحت وب طراحی کرد. و این که میشه زبان php رو با زبان دیگه مثل ++c/c توسعه داد. سوال اخر میشه کدهای پرل رو بین کدهای php نوشت؟
پاسخ: 
در پاسخ به سوال اول:
PHP از پرکاربردترین ها و یکی از مناسب ترین زبان ها برای نوشتن و طراحی نرم افزارهای تحت وب است.
در پاسخ به سوال دوم:
تا آنجا که اطلاع داریم، امکان نوشتن اکستنشن هایی برای PHP با ++C وجود دارد، اما PHP برای وب به اندازه ای قوی هست که نیازی به وام گرفتن از زبان های اپلیکیشنی نباشد.
در مورد سوال آخر:
این سبک کدنویسی در وب توصیه نمی شود، Perl و PHP دو زبان سمت سرور با مفسرهای متفاوت هستند و حتی اگر با توابعی مانند shell_exec قابل ترکیب باشند، به تجربه در موارد زیادی با مشکل مواجه خواهید شد.
نویسنده: مهدی صفری
زمان: ۱۶:۵۷:۵۰ - تاریخ: ۱۳۹۲/۱۱/۱۷
سلام
چطور می شود دو تاریخ زیر را از هم تفریق کرد و جوابی به صورت عدد به دست آورد؟
2/6/2014 04:57:02
2/4/2014 04:57:02
پاسخ: 
لطفا عبارت "تاریخ زمان" را در قسمت جستجو وارد کنید، هم برای PHP و هم برای JavaScript در مطالب جداگانه و به صورن مفصل در این رابطه بحث شده (بخش نظرات را هم مطالعه کنید).
نویسنده: sahar
زمان: ۱۵:۱۷:۴۶ - تاریخ: ۱۳۹۳/۰۷/۱۹
سلام
من کد زیر را نوشتم برای چاپ وارون یک عدد اما چیزی چاپ نمیشه میشه بگید ایراد کار کجاست ؟
<?php
$n = 254;
while($n >= 5){
$d = $n % 10;
echo $d.'<br>';
$n = $n / 10;
}
?>
پاسخ: 
کد شما اشتباه تایپی + استفاده نادرست از علامت => داشت که اصلاح شد.
نویسنده: سبحان
زمان: ۱۸:۱۵:۵۵ - تاریخ: ۱۳۹۳/۰۸/۱۸
سایتت عالیه
نویسنده: الهه
زمان: ۱۰:۳۵:۴۵ - تاریخ: ۱۳۹۳/۱۲/۱۹
سلام
من یک کد ساده برای تفریق نوشتم که بصورت رندوم جواب رو اشتباه برمیگردونه.
مثال کد:
$ghabelepardakht=$_POST['ghabelepardakht'];
$sumdaryaft=$mdaryafti1+$mdaryafti2+$mdaryafti3;
$baghi=$ghabelepardakht-$sumdaryaft;
تو کد بالا یک مبلغ کلی دارم که مشتری باید پرداخت کنه یعنی همون قابل پرداخت.
مشکل من تو باقیمانده است که در اکثر مواقع جمع دریافتی تو دیتابیس بجای محاسبه باقیمانده ثبت میشه. کمک کنید لطفا
پاسخ: 
اشکال خاصی به لحاظ Syntax در کدهای شما وجود ندارد، لذا این مسئله به موارد دیگری مروبط می شود که پی بردن به آنها نیازمند بررسی فرآیند اجرای کدهای شما از ابتدا تا زمان ذخیره در دیتابیس است!
نویسنده: سعید
زمان: ۱۲:۵۷:۰۵ - تاریخ: ۱۳۹۴/۰۶/۱۱
سلام
وقتی از محاسبه زیر استفاده میکنم نتیجه به صورت نماد علمی نمایش داده میشه
$h = time();
$key = (($h*59)*995) ;
echo $key ;
مثلا این نتیجه رو نشون میده
6.7910528671286E+18
باید چکار کنم که نتیجه هر چقدر هم طولانی باشه به صورت کامل نشان داده بشه نه به صورت نماد علمی
مثلا
19819654549683199310496461616841
باتشکر
پاسخ: 
نمونه کد درج شده تست شد، نتیجه یک عدد صحیح است و نماد علمی خاصی وجود ندارد! شاید موارد را از یک تابع یا کد دیگری عبور می دهید که این حالت پیش می آید؟!
نویسنده: سعید
زمان: ۲۲:۱۲:۵۸ - تاریخ: ۱۳۹۴/۰۶/۱۱
سلام مجدد
ممنون بابت پاسختون
بله درسته ولی اگه یکم عدد بزرگتر بشه به صورت نماد علمی نمایش میده مثل زیر
$h = time();
$key = (($h*52439)*996784235) ;
echo $key;
که عدد 7.5332877450704E+22 رو نمایش میده
پاسخ: 
می توانید از نمونه کد زیر استفاده کنید:
<?php
$h = time();
$key = (($h*52439)*996784235) ;
$key = number_format($key, 0, '', '');
echo $key ;
?>
نویسنده: setareh
زمان: ۱۹:۲۴:۳۸ - تاریخ: ۱۳۹۴/۰۶/۱۳
با سلام، من میخوام یه آرایه ی ۶ عضوی (اعداد) بنویسم که بعدش یه بار کل آرایه رو چاپ کنه، تو خط بعدی هم اعداد توی آرایه رو به ترتیب از کوچک به بزرگ چاپ کنه !
بخشه نوشتن آرایه و چاپ کردن خود آرایه رو بلدم اما نمیدونم چجوری اعداد رو با هم مقایسه کنم !!!!! میشه کمکم کنید لطفا؟!؟ خیلی ممنون
پاسخ: 
برای چینش یا Sort اعضای آرایه به ترتیب کوچک به بزرگ و برعکس نمونه کد زیر کاربرد دارد:
<?php
$array = array(1, 3, 8, 4, 6);
foreach($array as $key => $value){
echo $value.'<br>';
}
echo '<hr>';
arsort($array);
//print_r($array);
asort($array);
//print_r($array);
foreach($array as $key => $value){
echo $value.'<br>';
}
?>
نویسنده: fateme mirzaee
زمان: ۰۰:۱۹:۰۳ - تاریخ: ۱۳۹۴/۰۹/۱۹
عددی را به توان 1.86
و عدد دیگری را به توان 1/5 یک پنج برسانم
در php چگونه میتوان چنین محاسبه کرد
پاسخ: 
برای رساندن عددی به توان، نمونه راه حل های زیر کاربرد دارند:
<?php
$num = 4;
echo pow($num, 1.86);
echo '<br>';
echo pow($num, (1/5));
?>
نویسنده: آموزش php
زمان: ۲۳:۴۰:۲۴ - تاریخ: ۱۳۹۴/۰۹/۱۹
عالی بود مهندس...
خدا خیرت بده بابت مطالبی که میزاری
نویسنده: محمد
زمان: ۱۲:۰۷:۳۳ - تاریخ: ۱۳۹۴/۱۰/۱۷
سلام
این همه آموزش های خوب ولی من این سوالمو پیدا نکردم توشون من می خوام از یک عدد یه درصدی رو کم کنم مثلا می خوام از عدد 100 ده درصد کم کنم و نتیجه رو نشون بدم بیشتر برای یک ابزار محاسبه ای می خوام که مثلا کاربر عددش رو وارد کنه سیستم خودش اون مقدار درصد و کم کنه بهش نمایش بده شما فقط بگید برای اینکه از یک عدد درصدی رو بخوایم کم کنیم باید چیکار کنیم؟
مثالی دیگر:
از 1000 مقدار 35 درصد کم بشه و نتیجه با echo چاپ بشه
میشه راهنمایی کنید؟
پاسخ: 
قاعدتا این بخشی است که باید با توجه به دانسته های برنامه نویسی و دستورات یک زبان، کدهای منطقی بنویسید تا خروجی مورد نظرتان را دریافت کنید (تبدیل ایده ذهنی به کد)! با توجه به شرح مشکل، ابتدا نیاز دارید که مقدار درصدی یک عدد را محاسبه (تقسیم یک عدد بر صد و ضرب آن با مقدار مد نظر) و سپس مقدار کل را از مقدار درصد محاسبه شده، کم کنید، با این حساب:
<?php
$num = 1000;
$percent = 35;
$percentage = ($num / 100) * $percent;
$result = $num - $percentage;
echo $result;
?>
paged صفحه 1 از 2
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ خاصی داده نخواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لذا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.




9 × 6
 refresh
نکته:
با توجه به تاریخ نگارش آموزش های سایت و پیشرفت تکنولوژی های مرتبط با وب در سالیان اخیر، محتوای برخی از مطالب قدیمی ممکن است نیاز به ویرایش و به روزرسانی داشته باشند که این کار هم زمان با تهیه نسخه جدید «وبگو» به مرور در حال انجام است، لطفا در استفاده از مطالب سایت به این نکته دقت داشته و حتی المقدور از چند منبع مختلف استفاده نمائید.
آگهی
طراحی سایت
Oxweb.ir

ارائه خدمات طراحی سایت | طراحی وب سایت در تهران