نکات جالب و کاربردی برای تازه کاران php

سلام ;

اگر تازه شروع به یادگرفتن زبان برنامه نویسی تحت وب php کرده باشید ، ممکن است هنوز از بعضی ریزه کاری ها و نکات آن آگاه نباشید و همین کار شما را مشکل تر کند.در این مبحث سعی می کنیم به مهم ترین آنها اشاره کنیم دید شما نسبت به نکات کور و دور از دید آن نیز بیشتر شود. مثلا فرق استفاده از نقل قول تکی ‘ و نقل قول دوتایی ” ، استفاده از تگ کوتاه php ، استفاده از if در یک خط و انجام شرط بدون استفاده از if اشاره کرد.لطفا با ما باشید

نقل قول دوتایی و یکتایی

شاید شما ای تفاوت این دو آگاه باشید و شاید هم نه ،اما به هر حال نحوه استفاده به جا از هر کدام از اینها می تواند از بروز خطاها و اشکالات در برنامه جلوگیری کند.

<?php
     echo 'hello world';
?>

 

<?php
     echo "hello world";
?>

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

<?php

      $example = 'hello world';

      echo '$example'; // outcome will be $example

      echo "$example"; // outcome will be hello world
?>

همانطور که می بینید هنگام استفاده نقل قول دوتایی ، مدت زمانی باید صرف محاسبه مقادیر داخلی آن شود و این می تواند مقداری بار اضافی به دنبال بیاورد.البته در برنامه های مقیاس کوچک مشکلی نخواهد بود ولی مثلا در برنامه ای که یک حلقه ۱۰۰۰ بار اجرا می شود ، می توان به سرعت بیشتر نقل قول تکی پی برد .

در همین رابطه :   چگونه : در PHP ساده و سریع تر با MySQL کار کنیم؟

پس حالا اگر بخواهید یک متغیر و مقداری متن را با هم ترکیب کنید ، می توانید به این صورت عمل کنید:

<?php

	$example = 'hello world';

	echo 'This is my '.$example.' for PHP';  // outcome This is my hello world for PHP
	echo "This is my $example for PHP";  // outcome This is my hello world for PHP
?>

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

 

استفاده از تگ مختصر PHP

حتما می دانید وقتی می خواهیم یک متغیر را در بین کدهای html نمایش دهیم ، باید تگ php را باز کرده و سپس با echo آن را چاپ کنیم و تگ را ببندیم.البته این بین یک یا چند line break هم می زنیم که باز حجم و شکل برنامه را بر هم می زند.راه حل چیست ؟ همان php short tags :)

<?php
	$example = 'This is some text that I want in my paragraph.';
?>
<html>
	<head>
	</head>
	<body>
		<h1>I love short tags</h1>
		<p>
		< ?php
			echo $example;
		?>
		</p>
	</body>
</html>

از آن جایی که شخصل دوست دارم همه کارها را با کمترین کد انجام دهم ، از روش زیر استفاده می کنم :

<?php
	$example = 'This is some text that I want in my paragraph.';
?>
<html>
	<head>
	</head>
	<body>
		<h1>I love short tags</h1>
		<p>
		< ?=$example?>
		</p>
	</body>
</html>

نتیجه هر دو این کدها یکی خواهد بود ولی در راه دوم ، از کد کمتری استفاده کردیم.

نکته : تگ های کوتاه (php short tags) می توانند در فایل php.ini غیر فعال شده باشند و از این لحاظ تضیمنی برای صحت عملکردشان وجود ندارد.ولی به صورت پیش فرض روی همه سرورها فعال هستند.

در همین رابطه :   آموزش کامل برنامه نویسی یک وبلاگ با php به صورت شی گرا(OOP)

 استفاده از تگ های کوتاه با همراه دستور شرطیIF

تگ های کوتاه همچنین وقتی به همراه دستور if بکار روند ، بسیار کاربردی خواهند بود.داشتن یک دستور if معمولی داخل مقدار زیادی کد html می تواند خوانایی برنامه را کاهش دهد ولی با تگ های کوتاه قضیه فرق می کند

<?php
	$minimum_age = 21;
	$customer = 19;
?>
	<p>You are
	<?php
		if($customer<$minimum_age)
		{
			echo 'NOT';
		}
		else
		{
			echo '';
		}
	?>
	old enough to buy alcohol here.</p>

حالا وقتی از if به صورت دیگر استفاده کنیم کدمان به این شکل در می آید :

<?php
	$minimum_age = 21;
	$customer = 19;
?>
	<p>You are < ?=($customer<$minimum_age?'NOT':'')?> old enough to buy alcohol here.</p>

 

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

  • اول “$customer< $minimum_age” دقیقا همان کار “if($customer<$minimum_age)” را انجام می دهد
  • بعد “?’NOT’:” مساوی “{ echo ‘NOT’; }” است (کلا هر چیزی که بعد از علامت سوال ؟ و قبل از کولون : قرار بگیرد ، در صورت درست یا true بودن شرط ، بکار برده میشود)
  • آخرین قطعه “else” “:”” است که برابر “else{ echo ”; }” کار می کند(هر چیزی که بعد از کولون قرار بگیرد در صورت منفی یا false بودن شرط اجرا می شود.همان کاری که else انجام می دهد)

در انتهای این پست می خواهم یک راه کوچک را به شما معرفی کنم تا بتوانید به صورت داینامیک متغیرها را ایجاد کنید و کارتان را راحتتر انجام دهید.بهترین استفاده از این روش هنگامی است که شما با دیتابیس کار می کنید.اول با مثالی عمومی شروع می کنیم که معمولا استفاده می شود:

در همین رابطه :   چگونه یک وبلاگ شی گرا،بنویسیم؟!

 

<?php
     $id = '1';
     $query = mysql_query("SELECT name,title,content FROM blog_post WHERE id='$id' LIMIT 1");
     $data = mysql_fetch_assoc($query);
?>
     <div id="blog_wrapper">
          <h2>< ?=stripslashes($data['title'])?></h2>
          <span id="blog_author">< ?=stripslashes($data['name'])?></span>
          <p>< ?=stripslashes($data['content'])?></p>
     </div>

حالا می خواهیم به دیتابیس وصل شده و داده های آن را در قالب HTML نمایش دهیم.همچنین تمام آیتم های آن را از زیر تیغ stripslashes() گذراندیم :) تا اسلش هایی را که هنگام ورود داده ها به دیتابیس جهت امنیت آن ها بهشان افزوده ایم را ازشان جدا کند.به جای اعمال stripslashes به تک تک آنها ، می توانیم با استفاده از $$key = stripslashes() این کار را یکباره روی همه آیتم ها اعمال کنیم:

<?php
     $id = '1';
     $query = mysql_query("SELECT name,title,content FROM blog_post WHERE id='$id' LIMIT 1");
     $data = mysql_fetch_assoc($query);
	 if(is_array($data))
	 {
		foreach($data as $key => $value)
			$$key = stripslashes($value);
	 }
     <div id="blog_wrapper">
          <h2>< ?=$title?></h2>
          <span id="blog_author">< ?=$name)?></span>
          <p>< ?=$content)?></p>
     </div>

امیدوارم استفاده کرده باشید :)

منبع

دسته بندی : PHP

7 نظر

  1. مثل همیشه عالی و نکته مهمتر این که قسمت منبع رو ذکر کردید و این یعنی کپی‌رایت! که در بین وبلاگ‌نویسای فارسی در حال فراموش شدنه!!

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *