کامپیوتربرنامه نویسی

PHP تمرین: مقایسه رشته

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

هر الگوریتم - دنباله ای از انتخاب و اعمال. اما قبل از اینکه شما را انتخاب، شما نیاز به چیزی به مقایسه آن با چیزی. خط - مکانیزم کنترل الگوریتم وسیع ترین، کارآمد و عملی. خط - یک نوع از ارائه داده. داده های - این موضوع اصلی "مراقبت" از هر الگوریتم است.

منطق معمولی "مقایسه عمل"

به طور کلی، زبان تایپ پویا می کند هیچ تفاوت در داده ها، مانند خط مقایسه PHP و تعداد بسیار متفاوت است. شماره - آن را نیز یک رشته که شامل تنها اعداد، نقطه و یک شخصیت واحد است که مورد استفاده قرار نمی برای نشان دادن اعداد در هر شکل (نماد ریاضی) وجود ندارد.

اگر تعداد kontenkatsii به طور خودکار با خط ادغام، هیچ سوالات پرسیده و بدون خطا پنهان، تابع حتی اگر gettype () از 'عدد صحیح "یا" دو' می دهد.

با این حال، تفاوت بین استفاده از is_int () و is_numeric وجود دارد (). اولین دهد حقیقت، تنها زمانی که پارامتر یک عدد صحیح است، دوم، زمانی که هر تعداد و یا رشته ی عددی (نوع متغیر 'رشته' است، اما شامل همه نماد ریاضی ارائه شده).

یک مثال خوب از چگونه یک مقایسه پی اچ پی رشته اپراتورهای ( '==' '===' ... '='!) می توانید بسیاری از شگفتی در حال حاضر - این یک مثال ساده است. متغیرهای می توانید نوع خود را تغییر دهید، آنها همیشه اعداد نیست، اما تقریبا همیشه آنها می توانید به خط منجر شود. در حالت افراطی - از آن خواهد شد یک رشته خالی.

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

مرزهای کاربردی در دسترس

ارزان ترین، با ایمان و گزینه عملی - PHP-مقایسه دو ردیف خوب است "انجام" strpos تابع (). اگر در نتیجه از تعداد تابع، پس به وضوح یک رشته به دیگری و یا یک بخش به دیگری برابر است.

اساسا مخالف، بلکه کاملا این روش درست است - استفاده از عبارات منظم.

اگر تابع $ cResult = scCheckFileName ($ CSTR) می دهد «درست»، پس از آن خط به نام vordovsky فایل است. او فقط یک گزینه از گسترش 'های DOCX و هیچ شخصیت های به نام را داشته باشد: تنها حروف، ارقام و کاراکتر' _ '،' - '.

تابع را می توان به راحتی به انواع دیگر فایل های تبدیل: $ cPtr = '/^([a-zA-Z...0-9\-\_]{4،239})\.(html|js|css|png|jpg | DOCX | کلیپ برد چند منظوره) {1} $ / U '. این نوع گسترش محدوده اسکن دانلود خط (به عنوان مثال، مقایسه پی اچ پی رشته اعمال می شود "برای آپلود فایل به سرور، با هیچ شانسی برای ورودی") برای اچ تی ام ال، JS، CSS، ...

با استفاده از strpos () و preg_match () - افراط و. آنها به طور مستقیم به این موضوع از دوره مقایسه نیست. اما سوال از الگوریتم - یک ماده از با استفاده از ترکیبی از سبک، استفاده از تمام فرصت ها برای رسیدن به یک نتیجه قابل اعتماد و درست است.

کاربردی PHP: مقایسه رشته

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

عادی نوع PHP: انجام مقایسه رشته تابع INT strcmp (S1، S2).

نتیجه تابع:

  • 0 - خط برابر هستند؛
  • -1 - رشته اول کوچکتر از دومی است.
  • 1 - اولین بیش از سطر دوم.

در عمل، این بدان معنی است که بخشی از سطر اول به دوم، که از آن تابع پی اچ پی (مقایسه ردیف) تصمیم می گیرد. نسخه محدودی از strpos ()، چرا که در مورد دوم ممکن است به دانستن موقعیت از ورود.

strcmp تابع () - حساس است. اگر شما می خواهید برای مقایسه رشته حساس، پی اچ پی ارائه می دهد strcasecmp آن (). نحو مشابه است.

در عمل اغلب مورد نیاز برای کار با خط کامل نیست، اما تنها بخشی از آن را. برای این مجموعه ای از توابع پی اچ پی (نسبت به رشته) شامل strncmp (S1، S2، N). پارامتر سوم مشخص انجام مقایسه، تنها N-بایت. نتیجه این است strcmp مشابه ().

آرایه ها، رشته ها و مقایسه

این تقریبا همیشه با رشته ارائه شده است. اگر ما آرایه ها، اشیاء، و یا ساختمان داده در نظر، آن را فقط انواع مختلف از ترکیبات از یک ساختار رشته ساده است.

آرایه های رشته ها و ردیف ها را می توان در شیوه ای مکمل ارائه شده است. انتقال از آرایه را به یک داخل منفجر شدن تابع رشته (آرایه، نماد)، برای مثال: margins1 $ = از داخل منفجر شدن ( '،'، $ style-> getInnerMargin ())؛ ... الگوریتم / کاربران .... $ Margins2 = از داخل منفجر شدن ( '،'، $ style-> getInnerMargin ()) اجازه می دهد تا شما را به ادغام همه موقعیت شی در موقعیت رشته.

بعد از آن شما می توانید انجام مقایسه رشته پی اچ پی، و در یک زمان: $ چک = strcmp ($ margins1، $ margins2) و مطمئن شوید الگوریتم یا کاربر که چیزی تغییر کرده (یا نه). اگر شما در انجام یک مقایسه به روش معمول، شما باید برای مرتب کردن عناصر آرایه. بیشتر طول می کشد و پیچیده تر است.

اشیاء و خط

حتی استفاده از دیدنی و جذاب تر PHP (مقایسه رشته) می تواند از طریق ایده های شی گرا اجرا شده است.

ایده مدرن از امکانات نشان می دهد که آنها دارای خواص و روش ها. سابق معمولا توسط اعداد، رشته ها، آرایه ها، و اشیاء دیگر ارائه شده است. در حالت دوم اغلب شامل تکنیک های ضبط (قرار داده) در خط بازیابی و از خط (دریافت کنید).

بر خلاف آرایه، شی کار می کند با خواص خود و تعامل با اشیاء دیگر. شیء "صالح" که در آن خواص آن از ارزش واقعی برای الگوریتم از برنامه به عنوان یک کل است.

این لحظه فراهم می کند یک اساس و فرصت را به ثبت هنگام ضبط یک رشته تنها اطلاعات لازم، و در بهبود خط برای بازگرداندن تمام خواص مشغول به کار در حالت مورد نظر. معمولا در هر جسم است اطلاعات قابل توجه و کار (زمان) وجود دارد. پیاده سازی این ایده به شما اجازه ذخیره نه تنها حافظه، فضای دیسک، رکورد پایگاه داده، بلکه این امکان را برای مقایسه میانگین ها خطوط ساده تر و دقیق تر است.

نحو و معناشناسی

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

بدون شک، قابلیت خوب است، اما استفاده از آن را می توان در معنای کد امنیتی را در اشیاء منتقل شده است. وقتی که الگوریتم به عنوان یک سیستم از تعامل بین اشیاء ارائه شده است، به نظر می رسد بسیار بهتر از مقایسه توالی و اقدامات در دنباله مستقیم، سبک کلاسیک.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 fa.unansea.com. Theme powered by WordPress.