PHP הוא די טוב בעיבוד מידע. התחביר של השפה מוצג על ידי קבוצה הכוללת את כל התכונות של פונקציות השוואה, עיבוד מחרוזות, מפעילי השוואה.

השוואה מחרוזת PHP

כל אלגוריתם הוא רצף של אפשרויותפעולות. אבל לפני ביצוע בחירה, אתה צריך להשוות משהו עם משהו. מיתרים - המנגנון המרווח ביותר, היעיל והמעשי לשליטה באלגוריתם. קווים - גרסה של ייצוג נתונים. והנתונים הם הנושא העיקרי של "טיפול" של אלגוריתם כלשהו.

ההיגיון הרגיל של "פעולה השוואה"

באופן כללי, שפת ההקלדה הדינמית אינהעושה הבדלים מיוחדים בנתונים, למשל, ב- PHP, ההשוואה של מחרוזת ומספר אינה שונה בהרבה. מספר הוא גם מחרוזת כאשר הוא מכיל רק ספרות, נקודה, ואין תו בודד שאינו משמש לייצוג מספר בכל אחת מהצורות שלו (סימון מתמטי).

במקרה של מספור, המספר מתמזג אוטומטית עם המחרוזת ללא שאלות מיותרות וללא שגיאות מוסתרות, גם אם הפונקציה gettype () מספקת "מספר שלם" או "כפול".

השוואה בין שני מחרוזות

עם זאת, יש הבדל בין שימוש בפונקציהis_int () ו- is_numeric (). הראשון נותן את האמת כאשר הפרמטר הוא רק מספר שלם, השני כאשר כל מספר או מחרוזת מספריים (המשתנה יש את סוג "מחרוזת", אבל מכיל את כל זה מסופק על ידי סימון מתמטי).

דוגמה פשוטה זו היא דוגמה טובה, כמו ב- PHPמפעילי השוואה מחרוזת ("==", "===", "! = =", ...) יכול לתת הרבה הפתעות. משתנים יכולים לשנות את הסוג שלהם, הם לא תמיד מספרים, אבל כמעט תמיד הם יכולים להוביל מחרוזת. במקרה קיצוני, זה יהיה מחרוזת ריקה.

מפעילי השוואה מחרוזת PHP

בהתבסס על האמור לעיל, ב- PHP את פונקציית מחרוזת השוואה הוא הפופולרי ביותר. איזה מהם לבחור, כדי לפתור את היזם. הרבה אפשרויות זמינות עד ביטויים רגולריים.

גבולות של פונקציונליות זמינה

PHP השוואה של שתי מחרוזות הוא גם "לעשות" על ידי הפונקציהstrpos () היא האפשרות הזולה, הנכונה והמעשית. אם התוצאה של פונקציה זו היא מספר, אזי קו אחד שווה לשווה או אחד נכנס אחר.

הגישה הפוכה, אך גם נכונה לחלוטין, היא השימוש בביטויים רגילים.

הדוגמה של המחבר היא לא תמונה

אם הפונקציה קוראת $ cResult =scCheckFileName ($ cStr) ייתן "נכון", ולכן מחרוזת היא שם הקובץ vordian. יש לו רק אפשרות הרחבה אחת ". Docx" ואין תווים בשם: רק אותיות, מספרים ו - "_", "-" סימנים.

הפונקציה יכולה בקלות להפוך אחריםסוגים של קבצים: $ cPtr = "/^([a-zA-Z...0-9-_]{4,239}).html (http: //html|js|css|png|jpg|docx|txt) {1} $ / u ". אפשרות זו של אימות מחרוזת מרחיבה את טווח האפשרויות הניתנות להורדה (לדוגמה, ב- PHP, ההשוואה בין מחרוזות מוחלת "להעלאת קבצים לשרת, ללא סיכוי יחיד לשגיאת קלט") ב- HTML, js, css, ...

באמצעות strpos () ו preg_match () -קיצוניים. הם אינם קשורים ישירות לסוגיית השוואת העיתוי. אבל שאלת האלגוריתם היא שאלת החלת שילוב של סגנונות, תוך שימוש בכל האפשרויות להשגת תוצאה אמינה ונכונה.

פונקציונלית PHP: השוואה מחרוזת

ארסנל של שפה לעומת קווים הוא לא רקפונקציות של השוואה טהורה, אלא גם שילוב עם חיפוש או החלפת ישירות. לא תמיד הפעולה צריכה לעלות בקנה אחד עם ההשוואה, כי זה האחרון לא בהכרח להוביל לשינוי בכל שורה. לעתים קרובות יש צורך לבחור ענף אחד או אחר של האלגוריתם.

הגרסה הרגילה של PHP: השוואה מחרוזת מבוצעת על ידי פונקציה int strcmp (s1, s2).

תוצאה פונקציה:

  • 0 - הקווים שווים;
  • -1 - השורה הראשונה פחות מהשנייה;
  • 1 - השורה הראשונה גדולה יותר מהשנייה.

בפועל, זה אומר כי הראשוןהשורה השנייה, ממנה פונקציית PHP (מחרוזת השוואה) מחליטה. גרסה מוגבלת יותר של strpos (), כי במקרה האחרון אתה יכול לדעת את מיקום הכניסה.

הפונקציה strcmp () רגישה לרישיות. אם ברצונך להשוות מחרוזות ללא רגישות למקרה, PHP מציעה להשתמש ב- strcasecmp (). התחביר דומה.

בפועל, לעתים קרובות יש צורך לעבוד לא עם השלםאבל רק עם חלקה. לשם כך, strncmp (s1, s2, N) כלול במערך של פונקציות PHP (השוואת מחרוזות). הפרמטר השלישי מציין שרק N-בתים משווים. התוצאה דומה ל strcmp ().

מערכים, מיתרים והשוואות

הנתונים מיוצגים כמעט תמיד על ידי מחרוזות. אם ניקח בחשבון מערכים, אובייקטים או מבני מידע, אז אלה הם פשוט וריאנטים שונים של שילוב של מבנים מחרוזת פשוטה.

פונקציה השוואה מחרוזת

מחרוזות מחרוזות מחרוזות יכול להיותמוצגים באופן משלים. טרנספורמציה של מערך לתוך מחרוזת עם הפונקציה implode (מערך, סמל), לדוגמה: $ margins1 = implode (",", style-> getInnerMargin ()); ... העבודה של האלגוריתם / משתמש ...; $ margins2 = implode (",", $ style-> getInnerMargin ()) מאפשר למזג את כל מיקומי האובייקט לתוך שורת העמדות.

אז אתה יכול להריץ PHP- מחרוזת השוואה עבורפעם אחת: $ check = strcmp ($ margins1, $ margins2) ולוודא שהאלגוריתם או המשתמש שינו משהו (או לא). אם אתה מבצע את ההשוואה בדרך הרגילה, אז אתה צריך למיין את האלמנטים של מערכים. זה לוקח יותר ויותר נראה מסורבל יותר.

אובייקטים ומחרוזות

אפילו שימוש יעיל יותר של PHP (השוואה מחרוזת) ניתן ליישם באמצעות רעיונות מונחה עצמים.

רעיון מודרני של חפציםמניחה את קיומם של הנכסים והשיטות שלהם. הראשונים הם בדרך כלל מיוצגים על ידי מספרים, מחרוזות, מערכים וחפצים אחרים. השני כולל לעתים קרובות את שיטות הכתיבה (לשים) על מחרוזת ושחזור מחרוזת (לקבל).

שלא כמו מערכים, האובייקט עובד עםאת תכונותיו ואת אינטראקציה עם אובייקטים אחרים. האובייקט הוא "כשיר" במה המאפיינים שלו יש ערך אמיתי עבור האלגוריתם, התוכנית כולה.

השוואה מחרוזת PHP

נקודה זו נותנת יסוד הזדמנותרשומות לתקן בקו רק את המידע הדרוש, ועל שיקום מקו כדי לשחזר את כל התכונות עובד במצב הכרחי. בדרך כלל בכל אובייקט יש מידע חיוני ועובד (זמני). יישום של רעיון זה מאפשר לך לשמור לא רק זיכרון, שטח דיסק, רשומות מסד נתונים, אלא גם מאפשר להשוות מחרוזות בצורה פשוטה ומדויקת יותר.

תחביר וסמנטיקה

PHP הוא דינמי בפיתוח, ואת הפונקציונליות שלה כמו בהשוואת השורות, ולמען עיבודם משתפרת ללא הרף. עם זאת, דבר לא מונע את היזם מלהעביר את מרכז הכובד לתחום הסמנטיקה.

אין ספק, תפקודית היא טובה, אבל שלההשימוש יכול להיות מועבר לחלק הסמנטי של הקוד, לאובייקטים. כאשר האלגוריתם מיוצג כמערכת של אינטראקציה בין אובייקטים, הוא נראה הרבה יותר טוב מאשר רצף של השוואות ופעולות בסגנון סידורי ישיר קלאסי.

</ p>