PHP ტეგები
სულ ოთხი ტიპის ტეგი არსებობს, რომელთაგან მხოლოდ პირველის გამოყენებაა რეკომენდირებული.
1. ჩვეულევრივი <?php echo "Hello World"; ?> 2. short tags <? echo "Hello World"; ?> ან <?= "Hello World" ?> 3. ASP tags <% echo "Hello World"; %> (მისი shortcut <%= "Hello World" %> 4. Script tags <script language="php"> echo 'Hello world'; </script>
- ამ ოთხიდან Short და Asp ტეგების გამოყენება თუ გვინდა, php-ის კონფიგურაციაში უნდა გავააქტიუროთ შესაბამისი ფუნქციონალი. ისინი პორტატული არ არის და საერთოდ გვირჩევენ, რომ არ გამოვიყენოთ.
- short ტეგებს კონფლიქტი მოსდით xml ჰედერთან.
- ყველანაირი სიმბოლოები (მათ შორის ”ცარიელი” space-ები, ახალი ხაზის “\n” სიმბოლოები, ტაბები “\t”) რაც php ტეგების გარეთაა, პირდაპირ ბრაუზერის output-ში წავა. და თუ ისინი ჰედერებს გაუსწრებენ, არასასურველი შედეგი იქნება.
- ზედა პუნქტიდან გამომდინარე php პარსერი დამხურავი ტაგის მომდევნო პირველ newline სიმბოლოს output-ში არ გაგზავნის, იმიტომ რომ ზოგი რედაქტორი ავტომატურად, ჩვენს გარეშე ამატებს ”\n”-ს ფაილის ბოლოს.
- თუ დამხურავი ტეგი ფაილის ბოლოს არის, ის შეიძლება საერთოდ გამოვტოვოთ და ამით თავიდან ავიცილოთ ზევით განხილული შემთხვევა. შეცდომა არ იქნება, ოღონდ ეს xml პარსერს შეუშლის ხელს.
კომენტარები
- ერთ-ხაზიანი კომენტარებისთვის შეგვიძლია // და # გამოვიყენოთ. მათი მოქმედება სრულდება იმავე ხაზის ბოლოს ან იმ ხაზზე მყოფ php-ის დამხურავ ტეგთან (ეს არ ეხება script დამხურავ ტეგს).
- მრავალ სტრიქონიანი კომენტარებისთვის – /* */ ან /** */
მათზე php-ის დამხურავ ტეგს ზეგავლენა არ აქვს. ასევე არ აქვს მნიშვნელობა თუ რამდენ ასეთ კომენტარის ბლოკს ჩავდგამთ ერთმანეთში, მაგრამ მისი პირველივე დამხურავი ყველას ერთდროულად დახურავს.
ტიპები
PHP-ში რვა პრიმიტიული ტიპი არსებობს. აქედან:
ოთხი სკალარული: boolean, integer, float (ზუსტად იგივეა რაც double, ორი სახელი მხოლოდ ისტორიული მიზეზის გამოა შემორჩენილი), string
ორი შედგენილი: array, object
ორი სპეციალური ტიპი: resource, NULL
ასევე არის რამენიმე ფსევდო-ტიპი: mixed, number, callback
PHP მკაცრად ტიპიზირებული ენა არ არის, ამიტომ ცვლადის წინასწარ აღწერა და ტიპის გამოცხადება საჭირო არ არის. ტიპის დადგენა runtime დროს ხდება.
ტიპების ერთმანეთზე დასაყვანად ცვლადს წინ ვუწერთ ფრჩხილებში ტიპის სახელს. დაშვებულია შემდეგი:
- (int), (integer) – cast to integer
- (bool), (boolean) – cast to boolean
- (float), (double), (real) – cast to float
- (string) – cast to string
- (array) – cast to array
- (object) – cast to object
boolean-ზე დაყვანის შემთხვევაში შემდეგი გამოსახულებები გამოდის false:
- integer 0 (ნული)
- float 0.0 (ნული)
- ცარიელი სტრიქონი (string), და ასევე სტრიქონი, რომელიც მარტო ერთი ”0”-გან შედგება.
- მასივი, რომელშიც ელემენტები არ არის.
- სპეციალური ტიპი NULL
- SimpleXML ობიექტი, რომელიც ცარიელი ტეგებისგან არის შექმნილი
integer ტიპზე დაყვანის დროს:
- boolean ცვლადის დროს true გადადის ერთიანში, ხოლო false გადადის 0-იანში.
- string ცვლადის დროს თუ სტრიქონი მხოლოდ რიცხვს არ შეიცავს, მაშინ ინტერპრეტატორი ყველანაირად ცდილობს მხოლოდ რიცხვის ნაწილი ამოიღოს. ის უგულველყოფს space-ებსაც, მაგრამ ვერაფერს იზამს, თუ სტრიქონი სხვა სიმბოლოებით იწყება (ამაზე იხილეთ სავარჯიშო 4 🙂 )
მთელი რიცხვები (integer) შეიძლება წარმოდგენილი იყოს ათობით, თექვსმეტობით ან რვაობით ათვლის სისტემებში. რვაობითი რიცხვები აუცილებლად იწყება 0-ით, ხოლო თექვსმეტობითი 0x-ით.
შეკითხვები:
შეკითხვები:
1. რას დაბეჭდავს შემდეგი კოდი:
/* echo "Hi" // */ echo "Am I commented out?";
*/-ს გადაფარავს //-ს.
2. რას დაბეჭდავს შემდეგი კოდი:
// /* Hi ?> */ Am I commented out?
მიუხედავად იმისა, რომ PHP-ის დამხურავი ტეგი მრავალსტრიქონიან კომენტარებშია მოქცეული, ის მაინც დახურავს კომენტარს. როგორც ჩანს ამ შემთხვევაში //-ს გადაფარავს */-ს.
3. რას დაბეჭდავს შემდეგი კოდი (php.net):
var_dump(0 == 1); var_dump(0 == (bool)'all'); var_dump(0 == 'all'); var_dump(0 === 'all');
boolean false
boolean true
boolean false
4. რას შედეგი ექნება დაყვანებს (phpf1.com):
1. (int)"10" 2. (int)"10.5" 3. (int)"10,5" 4. (int)"10 " 5. (int)" 10 " 6. (int)"10test" 7. (int)"test10"
2. 10
3. 10
4. 10
5. 10
6. 10
7. 0
5. რას დაბეჭდავს კოდი (php.net):
echo 01090;
ეს არის რვაობითის ჩანაწერი, რადგან 0-ით იწყება. მაგრამ რვაობითისთვის დაუშვებელ ციფრსაც შეიცავს. როცა ასეთი ციფრი ხვდება ინტერპრეტატორს, ის უბრალოდ დანარჩენს ჩამოაჭრის. ამ შემთხვევაში დარჩება 010, რაც ათობითში 8-ის ტოლია.
6. რას დაბეჭდავს კოდი (php.net):
echo false; echo false+false; echo intval(false); echo true; echo true+true; echo intval(true);
იმის მაგივრად, რომ გამოვიდეს 000121, გამოდის 00121.
ცალკე აღებული false სტრიქონად გარდაქმნის დროს 0 არ ხდება, ხოლო true ხდება 1.
ჰოო :დ
ფრიად საინტერესო და თავისუფალი მიმოხილვაა! სწავლებას ხომ არ აპირებთ ან ხომ არ გაინტერესებთ? 🙂
@GioMac 🙂 სწავლება ძალიან მიყვარს. ერთი ისაა, რომ მე თვითონ არ ვიცი ჯერ 😀
თავისუფალ დროს ბლოგზე ვწერ და ამით ვიხარებ ჭიას. თან ერთი მომენტია, როცა ვიღაცას ცდილობ ასწავლო, დაწვრილებით დეტალურად არჩევ, რომ რამე არ გამოგრჩეს ან რაღაც სისულელე არ თქვა და მგონია, რომ ჩემთვის ესე უფრო სასარგებლოა
That’s what I call article ! 😀 GJ !
@darK ნაცნობი სახელი კია, მარა სპამერი ხარ მგონი ვიღაცა ხარ 😀
ტექნიკურ საკითხებში უძლიერესო, ერთი კითხვა მაქვს და ეგებ მიშველო 😀 : ფეისბუქში ჩემს პროფილში მინდა განვათავსო საყვარელი წიგნები, რომლებიც წაკითხული მაქვს და როგორ მოვახერხო ეგ, არ ვიცი.
ანუ, რომ ეწეროს წიგნის სახელი და სურათი.
თუ რამე იცი ამის თაობაზე, არ დაგეზაროს და მომწერე, რა 🙂
მადლობა წინასწარრრრრ.
@zurriuss 🙂
ორი ვარიანტი ვიცი, შეგიძლია LivingSocial-ის App აიღო, ან Goodreads Books app.
მე პირადად Goodreads უფრო მომწონს, იმიტომ რომ ადრე მქონდა მაგათ საიტზე ექაუნთი და ამ ბლოგზე რომ ვირტუალური თაროა, ეგეც იქიდან მომაქვს.
ფეისბუქის სერჩში ჩაწერე Goodreads books და მერე აპლიკაციაზე გადადი. თუ ამ საიტზე უკვე დარეგისტრირებული ხარ, შეგიძლია დააიმპორტო შენი წიგნები, და ისე აუცილებელი არ არის რეგისტრაცია 🙂
ცოტას გავიაზრებ, გადავხარშავ და ეგ არი 🙂
გაიხარე შენ 😉