آموزش عملگرها در PHP

دسته بندی: آموزش
زمان مطالعه: 7 دقیقه
۲۹ تیر ۱۳۹۱

فهرست محتوای این مقاله

    در این فصل شما را با عملگرها در php آشنا خواهم ساخت ، عملگرها یک نماد هستند که یک عمل خاصی را در یک عبارت انجام می دهند ، شما با  بسیاری از عملگرها آشنا هستید و آن ها را از اول دوره دبستان خود فراگرفته اید همانند عملگرد جمع (+) و تفریق (-).

    در ابتدا شما را با انواع عملگرها آشنا خواهم سپس به تقدم عملگرها خواهیم پرداخت :

    1) عملگرهای محاسباتی :

    این نوع عملگرها کار ریاضی را بر عهده دارند و خوشبختانه استفاده از آن ها بسیار آسان است در حد دوره دبستان :

    عملگرد نام توضیح مثال خروجی
    x + y جمع جمع x  و y 2 + 2 4
    x - y تفریق تفریق x و y 5 - 2 3
    x * y ضرب ضرب x و y 5 * 2 10
    x / y تقسیم تقسیم x بر y 15 / 5 3
    x % y باقیمانده به دست آوردن باقیمانده 5 % 2 10 % 8 10 % 2 1 2 0
    - x منفی عدد منفی - 2
    a . b الحاقی الحاق کردن دو رشته "Hi" . "Ha" HiHa

    2) عملگردهای نسبت دهی :

    این عملگرها ، مقداری را به یک متغیر نسبت می دهند :

    عملگر معادل با توضیح
    x = y x = y x را برابر با y قرار می دهد.
    x += y x = x + y x برابر با مقدار خود به علاوه y می شود.
    x -= y x = x - y x برابر با مقدار خود به منهای y می شود.
    x *= y x = x * y x برابر با مقدار خود ضربدر y می شود.
    x /= y x = x / y x برابر با مقدار خود تقسیم بر y می شود.
    x %= y x = x % y x برابر با مقدار خود و باقیمانده با y می شود.
    a .= b a = a . b دو رشته را الحاق می کند

    3) عملگرهای افزایشی و کاهشی :

    عملگر نام توضیح
    ++ x افزایشی یک واحد به x اضافه می شود.
    x ++ افزایشی در ابتدا x بر می گردد سپس اضافه می شود
    -- x کاهشی x کاهش یافته ، سپس بر می گردد
    x -- کاهشی x بر می گردد سپس کاهش پیدا می کند
    نکته :

    امیدوارم متوجه شده باشید که تفاوت x++  و ++x در چیست ، اگر متوجه نشده اید به مثال زیر خوب دقت نمائید :

    <?php
    $x=10;
    $y;
    $y = ++$x;
    
    ?>

    در کد فوق ، در ابتدا یک واحد به متغیر x اضافه می شود  و مقدار در  y قرار می گیرد یعنی y برابر با 11 خواهد شد.

    اما مثال زیر را هم ببینید :

    <?php
    $x=10;
    $y;
    $y = $x ++;
    
    ?>

    در کد بالا ، مقدار فعلی x در y قرار می گیرد (یعنی مقدار 10) و سپس یک واحد به x اضافه می شود و در این قسمت x برابر می شود با 11.

    حال برای آشنایی بیشتر به مثال زیر توجه نمائید :

    <?php
    $x=10;
    $y=15;
    $m;
    $m = ++x + y++;
    
    ?>

    در کد بالا ، در ابتدا مقدار x یک واحد افزایش پیدا می کند و به علاوه مقدار فعلی y می شود (یعنی 15) و در متغیر m مقدار 26 قرار می گیرد و مقدار خود y برابر با 16 می شود.

    4) عملگرهای مقایسه ای :

    عملگرهای مقایسه ای دو مقدار را با یکدیگر مقایسه می کنند ، این عملگرها بیشتر در دستورت شرطی و تصمیمات مورد استفاده قرار می گیرند.

    عملگر نام توضیح مثال
    x == y شرط برابر اگر x با y برابر بود 5==8 returns false
    x === y یکسان بودن اگر x با y برابر بود و همچنین دارای نوع یکسانی بودند. 5==="5" returns false
    x != y نا مساوی اگر x نامساوی y باشد 5!=8 returns true
    x <> y نا مساوی اگر x نامساوی y باشد 5<>8 returns true
    x !== y نا مساوی اگر x با y برابر نبود و همچنین دارای نوع یکسانی نودند. 5!=="5" returns true
    x > y بزرگتر اگر x بزگرتر بود 5>8 returns false
    x < y کوچکتر اگر y بزرگتر بود 5<8 returns true
    x >= y بزرگتر مساوی اگر x بزرگتر مساوی y بود 5>=8 returns false
    x <= y کوچکتر مساوی اگر x کوچکتر مساوی y بود 5<=8 returns true

    5) عملگرهای منطقی :

    این عملگرها یکی از مهمترین علمگرها در زبان های برنامه نویسی است ، این عملگرها به شما اجازه می دهند جزیان یک برنامه را تغییر دهید و در دستورات شرطی بسیار مورد استفاده قرار می گیرد.

    برای درک مفهوم بهتر یک مثال می زنم :

    <?php
    file_exists("milad.txt") or echo "File Not Found!";
    ?>

    در این جا ، خروجی ما دو مورد است :

    1. فایل milad.txt وجود دارد.
    2. اگر وجود نداشته باشد ، پیغام اخطار File Not Found ظاهر می شود.
    عملگر نام توضیح مثال
    x and y And اگر هر دو صحیح باشند ، این عبارت صحیح است و گرنه حتی اگر یکی از آن ها صحیح باشد خروجی false می شود x=6 y=3 (x < 10 and y > 1) returns true
    x or y Or اگر حداقل یکی از دو متغیر صحیح باشد نتبجه true است ، در غیر اینصورت false است x=6 y=3 (x==6 or y==5) returns true
    x xor y Xor اگر تنها x یا فقط y صحیح باشد ، مقدار true می شود x=6 y=3 (x==6 xor y==3) returns false
    x && y And اگر هر دو صحیح باشند ، این عبارت صحیح است و گرنه حتی اگر یکی از آن ها صحیح باشد خروجی false می شود x=6 y=3 (x < 10 && y > 1) returns true
    x || y Or اگر حداقل یکی از دو متغیر صحیح باشد نتبجه true است ، در غیر اینصورت false است x=6 y=3 (x==5 || y==5) returns false
    ! x Not اگر x صحیح نباشد ، عبارت true می شود x=6 y=3 !(x==y) returns true
    نکته :

    سعی کنید با عملگرها به خوبی آشنا شوید ، در ابتدا شاید فکر کنید حفظ کردن این عملگرها بسیار کار سختی است ، اما اگر شما همت و تلاش را پیشی بگیرید و بسیار تمرین کنید ، دیگر نیازی به حفظ کردن این عملگرها ندارید چون خود به خود ملکه ذهن شما خواهند شد. البته باید شانس بیاورید این عملگرها را در کنکور ندهند ، که اگر بدهند داستان درازی ست برای خودش.

    استفاده از عملگر سه گانه :

    عملگرهای سه گانه با علامت سوال (؟) مشخص می شوند روش استفاده از این عملگر بدین صورت می باشد :

    <?php
    $age = 15;
    $compare = $age > 14 ? 'young' : 'child' ;
    ?>

    این شرط چک می کند که اگر سن شما بزرگتر از 15 سال بود مقدار متغیر compare را برابر با young قرار می دهد در غیر اینصورت مقدار متغیر برابر با child می شود.

    تقدم عملگرها :

    تقدم عملگرها در تمام زبان های برنامه نویسی چه سیستمی چه تحت وب بسیار مهم هستند و شما باید ترتیب این عملگرها را به خاطر داشته باشید ، جدول زیر ترتیب عملگرها را در php به نمایش درآورده است :

    عملگرد نام
     new  ایجاد یک نمونه شی (شی گرائیی)
     ( )  پرانتز
     [ ]  شاخص گذاری
     ! ++ --  عملگر نه! افزایشی و کاهشی
     @  توقف خطا
     / * %  ضرب و تقسیم و باقیمانده
     + - .  جمع و تفریق و عملگر الحاقی
     < <= >= >  کوچکتر مساوی ، بزرگتر مساوی ،
     == != === <>  نامساوی و...
     || &&   عملگر AND و OR
     ?:  عملگر سه گانه
     AND XOR OR  عملگرهای منطقی
     ,  جدا کننده

    مثال :

    به نظر شما خروجی فوق چیست؟

    <?php
    $result = 5 + 7 * 6 ;
    echo $result;
    ?>

    فکر می کنید که در خروجی چه مقداری چاپ می شود ، اگر گفته اید 72 ، کاملا در اشتباه قرار دارید ، مگر عملگر ضرب تقدم بیشتری نسبت به جمع ندارد؟؟؟ در ابتدا ، 7 ضربدر 6 می شود و سپس به علاوه 5 می شود ، پس خروجی برابر با 47 می باشد.

    مثالی دیگر :

    <?php
    $m;
    $x = 6;
    $y = 10;
    $m = $x + $y / 2 * 3 ;
    echo $m;
    ?>

    حال خروچی چیست؟؟؟ اگر در ابتدا متغیر x به علاوه y شود و حاصل آن بر 2 تقسیم شود و نتیجه آن ضرب شود ، حاصل 24 می شود ، یا اینکه اگر ابتدا y تقسیم بر 2 شوید وحاصل آن با x جمع شود و نتیجه آن در 3 ضرب شود ، حال آن 33 خواهد بود و... اما اگر این کد را در xampp ایجاد کرده باشید خروجی به شما عدد 21 را نمایش می دهد ، چرا؟؟؟

    در ابتدا y تقسیم بر 2 می شود ، سپس 5 ضربدر 3 می شود و سپس حاصل به علاوه 6 می شود.

    در این قسمت شما را با عملگرها آشنا ساختیم ، در قسمت بعد دوباره سری به قسمت اصول اسکریپت نویسی در php خواهیم زد.

    نویسنده
    19 ساله، ساکن تهران و دانشجوی مهندسی کامپیوتر ؛طراح وب سایت ، سئو کار با سابقه کاری ، مطالعه بسیار زیاد در امر سئو و برندینگ اینترنتی و آشنایی با زبان های همچون PHP,JavaScript,html5,CSS3, Jquery ، با زبان انگلیسی آشنایی کامل دارم و شدیدا طرفدار استقلال و فرهاد مجیدی هستم.

    نظرات کاربران

    ehsan

    سلام آقا میلاد
    من تازه با برنامه نویسی آشنا شدم و خیلی آماتور هستم
    میشه لظف کنید و بگید چجوری جدول ضرب رو بنویسم
    ممنون 😥

    مجید

    سلام
    من میخوام تو یه پیج 2تا تکست باکس و 2تا باتن بزارم و از طریق متد پست فرم تو یه صفحه ی دیگه جواب نشان داده بشه،یه باتن مثلاً جمه را انجام بده و اون یکی تفریق.
    با تشکر

    HappyMoon

    البته فکر می‌کنم داخل عملگرهای افزایشی و کاهشی –x و x– باشه. یعنی دوتا علامت – ❓ ❗

    دكتر امين

    سلام میلاد جان مشکل قبلیم با کدی که گفتی حل شد
    اما یه سوال دیگه:
    من مثلا یه متغییر با نام $a در یک صفحه دارم با آدرس chat.php?a=20 دارم و میخوام این مقدار رو در یه صفحه نمایش بدم،چطور می تونم مقدار $a رو در این صفحه بدست بیارم؟
    از دستورinclude_once و require_once استفاده کردم ولی متاسفانه کامل محتوای صفحه ی درخواست شده رو نشون میدن،من میخوام هر اطلاعاتی رو که خواستم نشون بدن،نه کل صفحه!!!

    ممنون میلاد جان

    میلاد حیدری

    سلام با تشکر فراوان از شما

    لطفا به آدرس ایمیل زیر ارسال نمائید :

    mr.heydari[at][hotmail].com

    ali abc

    سلام اساتید محترم
    به یه مشکلی برخوردم،ما با دانشی که شما در اختیار ما گذاشتید و خودمون از منابع دیگر بدست آوردیم:
    یک کدی نوشته ایم اما یه ایرادی داره
    من یه مقداری رو بصورت رندم میدم و کاربر هم داخل تکست باکس اون تاپی کنه..اگر اونها برابر بود….چاپ کنه خوب در غیراینصورت چاپ کنه :بد!
    اما این کد من اگر بهش مقدار دادیم چاپ می کنه خوب و اگر ندادیم مینویسه بد!یه ایرادی وجود داره…اگر راهنمایی کنی ممنون میشم
    کد هم اینهاست:

     &lt;?php
       $x;
      $x=rand(11111,99999);   
       echo $x;  
       ?&gt;
     &lt;form  action=&quot;ali.php&quot; method=&quot;post&quot;&gt;
     &lt;input name=&quot;txtbox&quot; type=&quot;text&quot; maxlength=&quot;5&quot; height=&quot;5&quot; /&gt;
     &lt;input name=&quot;btn&quot; type=&quot;submit&quot; value=&quot;send&quot;  /&gt;
     &lt;/form&gt;
     &lt;?php
       $y=(int)@$_POST['txtbox'];?&gt;
      &lt;?php   
       if ($_POST['btn'])
       {  
         if($x==$y )
       {
         echo &quot;GOOD!&quot;;
         }
       else
         {
         echo&quot;Bad!&quot;;
         }
       }
        ?&gt;   
    
    میلاد حیدری

    سلام دوست عزیز ، کد زیر رو برات نوشتم امتحانش کن حتما بهم خبر بده

    &lt;?php
    $guess=$_POST['guess'];
    $number=$_POST['number'];
    if(empty($number)){
     $number=rand(11111,99999);
    echo &quot;$number&quot;;
    } 
    else {
     if($number==$guess){
      print &quot;&lt;h4&gt;GOOD!&lt;h4&gt;\n&quot;;
    $number=rand(11111,99999);
    echo &quot;$number&quot;;
     }
     else {
        print &quot;&lt;h4&gt;no!&lt;h4&gt;\n&quot;;
    $number=rand(11111,99999);
    echo &quot;$number&quot;;
    }
    }
    print &lt;&lt;&lt;geust
    &lt;form method=&quot;post&quot; action=&quot;&quot;&gt;
    &lt;input type = &quot;hidden&quot;
    name = &quot;number&quot;
    value = &quot;$number&quot;&gt;
    &lt;input type = &quot;text&quot;
    name = &quot;guess&quot;
    value = &quot;&quot;&gt;
    &lt;input type=&quot;submit&quot;
    value=&quot;Guess&quot;&gt;
    &lt;/form&gt;
    geust;
    ?&gt;
    
    ali abc

    salam ..are javab dad..dastet dard nakone
    tnx bro

    hosein2398

    به خدا شرمنده میکنین این همه زحمت میکشین! ما هم قول میدیم دانش آموز های خوبی باشیم 😳

    ali.h

    بابا میلاد اشتباه املایی/لپی/اوایی و …. پیش اومد با خدتم آق میلاد

    میلاد حیدری

    mr.heydari[at]hotmail.com

    ali.h

    بازم سلام.بابا ما بدجور پابند این سایت شدیم. 🙄 نوید جون مبخاستم ببینم من چجوری میتونم با او در تماس باشم…اگه میشه ایمیلتو بهم بگو مرسییییییییییییییییییییی.اخه ی چنتایی سوال دارم مربوط ب این بخش نمیشه میخام اونجا ازت بپرسم البته اگرپایه ای و مثل همیشه حال میدی. 😳 😳

    میلاد حیدری

    ببخشید من نوید رو نمی شناسم!!!

    علی حیدری

    سلام داش میلاد و اقا آوند.داداشای گل رفیقای باحال خیلی سایتتون تعریف داره خیلی.همین الان اون قسمت حمایت مالی رو دیدم.واقعا خیلی بیشتر از اینا ارزششو داره.من که حمایتو کردم انشاالله هدف اینکه بهترین سایت دنیا و ایران بشید.در ضمن سایت کاملا قابلیت پذیرش تبلیغو داره ها…از ما گفتن. فعلا عزت زیاد.

    میلاد حیدری

    سلام ، شما لطف دارید ، از طرف خودم و آقای آوند تشکر میکنم

    M.M.M

    سلام.مطالب شما خیلی خوبن، ینی منم وبسایت آموزشی طراحی وب دارم، و تازگیا یه بخشه planet یا همون سیاره تاسیس کردم، درسته خالیه ولی میخوام با همکاری شما و چند تا دیگه از وبسایتای طراحی وب پرش کنم، اساس کار هم اینه که شما فیدتون رو توی وبسایت ثبت می کنید، و بعدشم خلاصه ی مطالب شما و بقیه ی دوستان اونجا با بروز شدن سایت ها ثبت میشه و کسانی که علاقه به مطالعه درباره ی طراحی وب دارن، میتونن مطالب رو خلاصه اونجا بخونن و اگه دوست داشتن، روی لینک مطلب کلیک کنن و به وبسایتی که مطلب رو گذاشته بیان. این شکلی هم کار برای مشتاقان طراحی وب راحت میشه و هم به بازدید وبسایت های درباره ی طراحی وب کمک میشه.
    نمونه ی یکی از این وبسایتا هم اینجا هست که البته من نساختمش:
    planet.sito.ir
    سیاره ی طراحی وب هم آدرسش اینه:
    planet.persiatut.com
    ممنون میشم با ما همکاری کنید.

    hatyla

    سلام
    ممنون از زحماتتون.من سخت پیگیر آموزشهاتون و مشتاق یادگیری هستم
    باتشکر

    علی حیدری

    😳 😳 😳 😳 😳 😳 😳 😳 😳 😆 😆 😆 😆 😆 😆

    نیاز به لاگین

    برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
    گزارش مشکل