PDA

View Full Version : سوال: یه روش خلاقانه برای تعیین پریاخالی بودن متغیرها (جایگزینی برای strlen)



idocsidocs
پنج شنبه 17 شهریور 1390, 23:25 عصر
وقتی بخوایم پریاخالی بودن یه رشته رو متوجه بشیم معمولا از empty یا isset و یا strlen استفاده می کنیم. مشکل هر کدوم از این توابع اینه که هرکدوم ایرادی دارن.

مثلا empty رشته "0" رو به عنوان مقدار خالی در نظر می گیره ! isset هم مقدار '' رو مقدار پر در نظر می گیره !
strlen که کند هست. با توجه به این مطلب تصمیم گرفتم از روشی که جدیدا پیدا کردم استفاده کنم.

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

if(!isset($username{3}))
توی این صفحه یه آموزش پیدا کردم که بنظرم می تونه روش مناسبی باشه. (http://www.maxoya.com/article/12/%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-%D9%88-%D8%AA%D8%B1%D9%81%D9%86%D8%AF%D9%87%D8%A7%DB%8C%D B%8C-%DA%A9%D9%87-%D8%B4%D8%A7%DB%8C%D8%AF-%D9%87%DB%8C%DA%86-%D9%88%D9%82%D8%AA-%D8%AF%D8%B1-php-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D9%86%DA%A9%D8%B1%D8%AF%D9%87%E2%80%8C%D8%A7%DB%8 C%D8%AF%21)

راهی بهتر از strlen !
فکر کنید می‌خواهید در شرطی به برنامه بگویید که رشته مورد نظر من کمتر از 3 کاراکتر نباید باشد (مثلا در قسمت ثب نام سایت و فیلد نام کاربری!). راه حال رایج برای اینکار استفاده از تابع strlen می باشد، همانطور که می‌دانید با استفاده از این تابع می‌توان تعداد رشته مورد نظر را بدست آورد مانند کد زیر:

1

if(strlen($username) < 3) echo "username is too short";




اما استفاده از روش زیر بسیار کارآمدتر از روش قبل است و سرعت بیشتری نسبت به روش قبل دارد:


1

if(!isset($username{3})) echo "username is too short";

idocsidocs
جمعه 18 شهریور 1390, 17:29 عصر
دوستان نظری ندارن؟

binyaft
جمعه 18 شهریور 1390, 19:56 عصر
من این روش رو در Optimize کردن کدهای PHP دیده بودم ...