Referans - Bu sembol PHP'de ne anlama geliyor?


Al─▒nan cevaba git


Bu nedir?

Bu, ┼čimdi ve daha sonra PHP'de s├Âzdizimi hakk─▒nda ortaya ├ž─▒kan bir sorular toplulu─čudur. Bu ayn─▒ zamanda bir Topluluk Wiki'sidir, yani herkes bu listeyi s├╝rd├╝rmeye kat─▒lmaya davet edilir.

Bu neden?

─░┼čle├žler ve di─čer s├Âzdizimi belirte├žleri hakk─▒nda sorular bulmak zordu
. Ana fikir Stack Overflow'taki mevcut sorulara ba─člant─▒ sa─člamakt─▒, bu nedenle PHP Manual'dan i├žerik kopyalamamak i├žin onlara ba┼čvurmam─▒z daha kolay.

Not: Ocak 2013'ten beri Y─▒─č─▒n Ta┼čmas─▒ ├Âzel karakterleri desteklemektedir . Sadece arama terimlerini t─▒rnak i┼čaretleri i├žine al─▒n, ├Âr. [php] "==" vs "==="

Burada ne yapmal─▒y─▒m?

Burada b├Âyle bir soru sordu─čunuz i├žin birileri taraf─▒ndan i┼čaret edildiyseniz, l├╝tfen a┼ča─č─▒daki ├Âzel s├Âzdizimini bulun. Ba─člant─▒l─▒ sorularla birlikte PHP k─▒lavuzuna ba─čl─▒ sayfalar , muhtemelen sorunuzu cevaplayacakt─▒r. E─čer ├Âyleyse, cevab─▒ y├╝kseltmek i├žin te┼čvik edilir. Bu liste, di─čerlerinin sa─člad─▒─č─▒ yard─▒m─▒n yerine ge├žmez.

Liste

├ľzel belirteciniz a┼ča─č─▒da listelenmemi┼čse, bunu Ayr─▒┼čt─▒r─▒c─▒ Belirte├žleri Listesi'nde bulabilirsiniz .


& Bitsel Operat├Ârler veya Referanslar


=& Referanslar


&= Bitsel Operat├Ârler


&& Mant─▒ksal operat├Ârler


% Aritmetik operat├Ârler


!! Mant─▒ksal operat├Ârler


@ Hata Kontrol Operat├Ârleri


?: ├ť├žl├╝ operat├Âr


?? Bo┼č Birle┼čtirme Operat├Âr├╝ (PHP 7'den beri)


?string?int?array?bool?float Bo┼čalt─▒labilir geri d├Ân├╝┼č t├╝r├╝ bildirimi (PHP 7.1'den beri)


: Kontrol yap─▒lar─▒ i├žin alternatif s├Âzdizimi , ├ť├žl├╝ Operat├Âr


:: Kapsam ├ç├Âz├╝n├╝rl├╝k Operat├Âr├╝


\ Ad alanlar─▒


-> S─▒n─▒flar ve Nesneler


=> Diziler


^ Bitsel Operat├Ârler


>> Bitsel Operat├Ârler


<< Bitsel Operat├Ârler


<<< Heredoc veya Nowdoc


= Atama Operat├Ârleri


== Kar┼č─▒la┼čt─▒rma Operat├Ârleri


=== Kar┼č─▒la┼čt─▒rma Operat├Ârleri


!== Kar┼č─▒la┼čt─▒rma Operat├Ârleri


!= Kar┼č─▒la┼čt─▒rma Operat├Ârleri


<> Kar┼č─▒la┼čt─▒rma Operat├Ârleri


<=> Kar┼č─▒la┼čt─▒rma Operat├Ârleri (PHP 7.0'dan beri)


| Bitsel Operat├Ârler


|| Mant─▒ksal operat├Ârler


~ Bitsel Operat├Ârler


+ Aritmetik Operat├Ârler , Dizi Operat├Ârleri


+= ve -= Atama Operat├Ârleri


++ ve -- Artan / Azaltan Operat├Ârler


.= Atama Operat├Ârleri


. Dize Operat├Ârleri


, ─░┼člev Arg├╝manlar─▒

, De─či┼čken Bildirimler


$$ De─či┼čken De─či┼čkenler


` ─░cra Operat├Âr├╝


<?= K─▒sa A├ž─▒k Etiketler


[] Diziler (PHP 5.4'ten beri k─▒sa s├Âzdizimi)


<? Etiketleri A├žma ve Kapatma


... Tart─▒┼čmay─▒ a├žma (PHP 5.6'dan beri)


** ├ťstel (PHP 5.6ÔÇÖdan beri)


# Tek sat─▒rl─▒k kabuk tarz─▒ yorum


:? Bo┼članabilir iade t├╝rleri



4280









Cevap say─▒s─▒n─▒ say: 18






Operat├Ârleri Art─▒rma / Azaltma Operat├Ârleri

++ art─▒┼č operat├Âr├╝

-- Azaltma operat├Âr├╝

 Example    Name              Effect
---------------------------------------------------------------------
++$a       Pre-increment     Increments $a by one, then returns $a.
$a++       Post-increment    Returns $a, then increments $a by one.
--$a       Pre-decrement     Decrements $a by one, then returns $a.
$a--       Post-decrement    Returns $a, then decrements $a by one.
 

Bunlar de─či┼čkenden ├Ânce veya sonra gidebilir.

De─či┼čkenden ├Ânce konursa, ilk ├Ânce de─či┼čkene artan / azal─▒┼č i┼člemi yap─▒l─▒r ve sonu├ž d├Ând├╝r├╝l├╝r. De─či┼čkenden sonra konulursa, de─či┼čken ilk ├Ânce d├Ând├╝r├╝l├╝r, ard─▒ndan art─▒┼č / azaltma i┼člemi yap─▒l─▒r.

├ľrne─čin:

 $apples = 10;
for ($i = 0; $i < 10; ++$i) {
    echo 'I have ' . $apples-- . " apples. I just ate one.\n";
}
 

Canl─▒ ├Ârnek

Yukar─▒daki durumda ++$i , daha h─▒zl─▒ oldu─ču i├žin kullan─▒l─▒r. $i++ ayn─▒ sonu├žlar─▒ olurdu.

├ľn art─▒┼č biraz daha h─▒zl─▒d─▒r, ├ž├╝nk├╝ de─či┼čkeni ger├žekten artt─▒r─▒r ve bunun ard─▒ndan sonucu 'verir'. Art─▒┼č sonras─▒ ├Âzel bir de─či┼čken yarat─▒r, orada ilk de─či┼čkenin de─čerini kopyalar ve yaln─▒zca ilk de─či┼čkenin kullan─▒lmas─▒ndan sonra de─čerini ikincisiyle de─či┼čtirir.

Bununla birlikte, kullanman─▒z gerekir $apples-- , ├ž├╝nk├╝ ilk ├Ânce, mevcut elma say─▒s─▒n─▒ g├Âr├╝nt├╝lemek ve ard─▒ndan ondan bir tane ├ž─▒karmak istiyorsunuz.

Ayr─▒ca PHPÔÇÖdeki harfleri de art─▒rabilirsiniz:

 $i = "a";
while ($i < "c") {
    echo $i++;
}
 

Bir kez z eri┼čilir aa , sonra ve b├Âyle devam eder.

Karakter de─či┼čkenlerinin art─▒r─▒labilece─čini, azalt─▒lamayaca─č─▒n─▒ ve hatta yaln─▒zca d├╝z ASCII karakterlerinin (az ve AZ) desteklenebilece─čini unutmay─▒n.


Y─▒─č─▒n Ta┼čma Mesajlar─▒:


1101







Bitsel Operat├Âr

Biraz nedir? Bir bit, 1 veya 0'─▒n temsilidir. Temelde OFF (0) ve ON (1)

Bayt nedir? 8 bitlik bir bayt yap─▒l─▒r ve her bitin ayarland─▒─č─▒ anlam─▒na gelen bir bayt─▒n en y├╝ksek de─čeri 255'tir. Bir bayt─▒n maksimum de─čerinin neden 255 oldu─čunu g├Ârece─čiz.

 -------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
 

1 Bayt'─▒n bu g├Âsterimi

1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 Bayt)

Daha iyi anla┼č─▒lmas─▒ i├žin birka├ž ├Ârnek

"AND" operat├Âr├╝: &

 $a =  9;
$b = 10;
echo $a & $b;
 

Bu say─▒ 8 olur. Neden? Hadi tablo ├Ârne─čimizi kullanarak g├Ârelim.

 -------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
|      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
-------------------------------------------
|      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
------------------------------------------- 
|      &     |   0|  0|  0|  0| 1| 0| 0| 0|
------------------------------------------- 
 

Tablodan g├Ârebildi─činiz ├╝zere, birlikte payla┼čt─▒klar─▒ tek par├ža 8 bit.

─░kinci ├Ârnek

 $a =  36;
$b = 103;
echo $a & $b; // This would output the number 36.
$a = 00100100
$b = 01100111
 

Payla┼č─▒lan iki bit 32 ve 4't├╝r; bunlar bir araya getirildi─činde 36 d├Ând├╝r├╝rler.

"Veya" i┼čleci: |

 $a =  9;
$b = 10;
echo $a | $b;
 

Bu 11 say─▒s─▒n─▒ verirdi. Neden?

 -------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
|      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
-------------------------------------------
|      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
------------------------------------------- 
|      |     |   0|  0|  0|  0| 1| 0| 1| 1|
-------------------------------------------
 

8, 2 ve 1 s├╝tununda 3 bit ayarlanm─▒┼č oldu─čumuzu fark edeceksiniz. Bunlar─▒ ekleyin: 8 + 2 + 1 = 11.


420







_ Gettext () i├žin takma ad

Alt ├žizgi karakteri '_' oldu─ču gibi _() , gettext() i┼člevin bir di─čer ad─▒d─▒r .


266







 Syntax    Name             Description

x == y    Equality         True if x and y have the same key/value pairs
x != y    Inequality       True if x is not equal to y
x === y   Identity         True if x and y have the same key/value pairs
                            in the same order and of the same types
x !== y   Non-identity     True if x is not identical to y
++ x      Pre-increment    Increments x by one, then returns x
x ++      Post-increment   Returns x, then increments x by one
-- x      Pre-decrement    Decrements x by one, then returns x
x --      Post-decrement   Returns x, then decrements x by one
x and y   And              True if both x and y are true x=6 y=3
                           (x < 10 and y > 1) returns true 
x && y    And              True if both x and y are true x=6 y=3
                           (x < 10 && y > 1) returns true
a . b     Concatenation    Concatenate two strings: "Hi" . "Ha"
 

258







<=> Uzay Gemisi Operat├Âr├╝

PHP 7'de eklendi

Uzay gemisi operat├Âr├╝ <=> Bu bir olan PHP 7'de eklenen son kar┼č─▒la┼čt─▒rma operat├Âr├╝d├╝r birle┼čtirici olmayan e┼čitlik operat├Ârleri ayn─▒ ├Âncelik s─▒ras─▒na sahip ikili operat├Âr ( == , != , === , !== ). Bu operat├Âr, sol ve sa─č el operat├Ârleri aras─▒nda daha basit ├╝├ž y├Ânl├╝ kar┼č─▒la┼čt─▒rma sa─člar.

─░┼čle├ž, tamsay─▒ ifadesiyle sonu├žlan─▒r:

  • 0 Her iki i┼členen e┼čit oldu─čunda
  • K├╝├ž├╝kt├╝r 0 sol i┼členen az sa─č i┼členen uzun oldu─čunda
  • B├╝y├╝kt├╝r 0 soldaki i┼členen sa─č i┼členen daha b├╝y├╝k oldu─čunda

├ľrne─čin

 1 <=> 1; // 0
1 <=> 2; // -1
2 <=> 1; // 1
 

Bu operat├Âr├╝ kullanman─▒n iyi bir pratik uygulamas─▒, iki de─čer aras─▒ndaki ├╝├ž y├Ânl├╝ kar┼č─▒la┼čt─▒rmaya dayanarak s─▒f─▒r, negatif veya pozitif bir tamsay─▒ d├Ând├╝rmesi beklenen kar┼č─▒la┼čt─▒rma t├╝r├╝nde geri aramalard─▒r. Kar┼č─▒la┼čt─▒rma i┼člevi usort , bu gibi bir ├Ârnektir.

PHP 7'den ├Ânce yazacakt─▒n─▒z ...

 $arr = array(4,2,1,3);

usort($arr, function ($a, $b) {
    if ($a < $b) {
        return -1;
    } elseif ($a > $b) {
        return 1;
    } else {
        return 0;
    }
});
 

PHP 7'den beri yazabilirsiniz ...

 $arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    return $a <=> $b;
});
 

253







B├╝y├╝ sabitleri : Her ne kadar bunlar sadece semboller de─čil, bu sembol ailesinin ├Ânemli bir par├žas─▒. Kullan─▒ld─▒klar─▒ yere g├Âre de─či┼čen sekiz b├╝y├╝l├╝ sabit vard─▒r.

__LINE__ : Dosyan─▒n ge├žerli sat─▒r numaras─▒.

__FILE__ : Dosyan─▒n tam yolu ve dosya ad─▒. Bir dahil i├žinde kullan─▒l─▒rsa, dahil edilen dosyan─▒n ad─▒ d├Ând├╝r├╝l├╝r. PHP 4.0.2'den beri __FILE__ , daha eski s├╝r├╝mlerde baz─▒ durumlarda g├Âreceli yolu i├žerdi─či halde , her zaman sembolik ba─člant─▒lar─▒ ├ž├Âz├╝lm├╝┼č mutlak bir yol i├žerir.

__DIR__ : Dosyan─▒n dizini. Bir include i├žinde kullan─▒l─▒rsa, dahil edilen dosyan─▒n dizini d├Ând├╝r├╝l├╝r. Bu e┼čde─čerdir dirname(__FILE__) . Bu dizin ad─▒, k├Âk dizin olmad─▒k├ža sonda e─čik ├žizgi i├žermez. (PHP 5.3.0'da eklenmi┼čtir.)

__FUNCTION__ : ─░┼člev ismi. (PHP 4.3.0'da eklenmi┼čtir) PHP 5'ten itibaren bu sabit, i┼člev ad─▒n─▒ bildirildi─či ┼čekilde d├Ând├╝r├╝r (b├╝y├╝k / k├╝├ž├╝k harf duyarl─▒). PHP 4'te de─čeri her zaman k├╝├ž├╝k harflerle g├Âsterilir.

__CLASS__ : S─▒n─▒f ismi. (PHP 4.3.0'da eklendi) PHP 5'ten itibaren bu sabit, bildirildi─či gibi s─▒n─▒f ad─▒n─▒ d├Ând├╝r├╝r (b├╝y├╝k / k├╝├ž├╝k harf duyarl─▒). PHP 4'te de─čeri her zaman k├╝├ž├╝k harflerle g├Âsterilir. S─▒n─▒f ismi, (├Ârne─čin Foo\Bar ) ' de bildirildi─či isim alan─▒n─▒ i├žerir . PHP 5.4'ten itibaren __CLASS__ ├Âzelliklerde de ├žal─▒┼čt─▒─č─▒n─▒ unutmay─▒n . Bir ├Âzellik y├Ânteminde __CLASS__ kullan─▒ld─▒─č─▒nda, ├Âzelli─čin kullan─▒ld─▒─č─▒ s─▒n─▒f─▒n ad─▒d─▒r.

__TRAIT__ : ├ľzellik ad─▒. (PHP 5.4.0'da eklendi) PHP 5.4'ten itibaren bu sabit, bildirildi─či gibi ├Âzelli─či d├Ând├╝r├╝r (b├╝y├╝k / k├╝├ž├╝k harf duyarl─▒). ├ľzellik ad─▒, bildirildi─či isim alan─▒n─▒ i├žerir (├Ârn. Foo\Bar ).

__METHOD__ : S─▒n─▒f y├Ântemi ad─▒. (PHP 5.0.0'da eklendi) Y├Ântem ad─▒ bildirildi─či ┼čekilde d├Ând├╝r├╝l├╝r (b├╝y├╝k / k├╝├ž├╝k harfe duyarl─▒).

__NAMESPACE__ : Ge├žerli ad alan─▒n─▒n ad─▒ (b├╝y├╝k / k├╝├ž├╝k harfe duyarl─▒). Bu sabit derleme zaman─▒nda tan─▒mlanm─▒┼čt─▒r (PHP 5.3.0'da eklenmi┼čtir).

Kaynak


226







Operat├Ârler yaz─▒n

instanceof Bir PHP de─či┼čkeninin belirli bir s─▒n─▒f─▒n somutla┼čt─▒r─▒lm─▒┼č bir nesnesi olup olmad─▒─č─▒n─▒ belirlemek i├žin kullan─▒l─▒r.

 <?php
class mclass { }
class sclass { }
$a = new mclass;
var_dump($a instanceof mclass);
var_dump($a instanceof sclass);
 

Yukar─▒daki ├Ârnek ├ž─▒kt─▒ verecektir:

 bool(true)
bool(false)
 

Gerek├že: Yukar─▒daki ├ľrnek $a bir amac─▒, mclass bu nedenle kullan─▒m─▒ yaln─▒zca mclass veri olmayan ├Ârne─či sclass

Miras ├Ârne─či

 <?php 
class pclass { } 
class childclass extends pclass { } 
$a = new childclass; 
var_dump($a instanceof childclass); 
var_dump($a instanceof pclass);
 

Yukar─▒daki ├Ârnek ├ž─▒kt─▒ verecektir:

 bool(true)
bool(true)
 

Clone ile ├ľrnek

 <?php 
class cloneable { } 
$a = new cloneable;
$b = clone $a; 
var_dump($a instanceof cloneable); 
var_dump($b instanceof cloneable);
 

Yukar─▒daki ├Ârnek ├ž─▒kt─▒ verecektir:

 bool(true)
bool(true)
 

142







PHP'deki operat├Ârlere genel bak─▒┼č :


Mant─▒ksal operat├Ârler:

  • $ a && $ b: Hem $ a hem de $ b TRUE ise TRUE.
  • $ a || $ b: $ a veya $ b TRUE ise TRUE.
  • $ a xor $ b: $ a veya $ b TRUE ise, ancak ikisi de TRUE de─čilse.
  • ! $ a: $ a TRUE de─čilse TRUE.
  • $ a ve $ b: Hem $ a hem de $ b TRUE ise TRUE.
  • $ a veya $ b: $ a veya $ b TRUE ise TRUE.

Kar┼č─▒la┼čt─▒rma operat├Ârleri:

  • $ a == $ b: E─čer $ a hokkabazl─▒ktan sonra $ a $ b'ye e┼čitse TRUE.
  • $ a === $ b: $ a $ b'ye e┼čitse ve ayn─▒ t├╝rdeyse TRUE.
  • $ a! = $ b: E─čer $ a hokkabazl─▒ktan sonra $ a $ b'ye e┼čit de─čilse TRUE.
  • $ a <> $ b: E─čer $ a hokkabazl─▒ktan sonra $ a $ b'ye e┼čit de─čilse.
  • $ a! == $ b: $ a $ b'ye e┼čit de─čilse veya ayn─▒ t├╝rde de─čilse TRUE.
  • $ a <$ b : $ a kesinlikle $ b'den az ise TRUE.
  • $ a> $ b : $ a kesinlikle $ b'den b├╝y├╝kse, TRUE.
  • $ a <= $ b : $ a, $ b'ye e┼čit veya daha k├╝├ž├╝kse, TRUE.
  • $ a> = $ b : $ a, $ b'ye e┼čit veya daha b├╝y├╝kse, TRUE.
  • $ a <=> $ b : $ a s─▒ras─▒yla $ b'ye e┼čit veya daha az oldu─čunda, s─▒f─▒ra e┼čit veya daha k├╝├ž├╝k bir tam say─▒. PHP 7'den itibaren kullan─▒labilir.
  • a $ $ b: $ c : e─čer $ a $ b verirse $ c d├Ând├╝r├╝r ( ├╝├žl├╝ operat├Âr )
  • a $ $ c : $ a ile ayn─▒ m─▒? $ a: $ c ( bo┼č birle┼čtirme operat├Âr├╝ - PHP gerektirir> = 7)

Aritmetik operat├Ârler:

  • - $ a : $ a kar┼č─▒s─▒nda.
  • $ a + $ b : $ a ve $ b toplam─▒.
  • $ a - $ b : $ a ve $ b aras─▒ndaki fark.
  • $ a * $ b : $ a ve $ b aras─▒ ├╝r├╝n.
  • $ a / $ b : $ a ve $ b b├Âl├╝m├╝
  • $ a% $ b : $ a'n─▒n kalan k─▒sm─▒ $ b ile b├Âl├╝n├╝r.
  • $ a ** $ b : $ a'y─▒ $ b 'nin g├╝c├╝ne y├╝kseltmenin sonucu (PHP 5.6'da sunulmu┼čtur)

Art─▒rma / Azaltma Operat├Ârleri:

  • ++ $ a : $ a art─▒r─▒r, sonra $ a d├Ând├╝r├╝r.
  • $ a ++ : $ a d├Ând├╝r├╝r, sonra $ a de─čerini birer birer art─▒r─▒r.
  • - $ a : $ a'y─▒ birer birer azalt─▒r, sonra $ a d├Ând├╝r├╝r.
  • $ a-- : $ a de─čerini d├Ând├╝r├╝r, ard─▒ndan $ a'y─▒ birer birer azalt─▒r.

Bitsel Operat├Ârler:

  • $ a & $ b : Hem $ a hem de $ b olarak ayarlanan bitler ayarlan─▒r.
  • a $ | $ b : $ a veya $ b olarak ayarlanm─▒┼č bitler belirlenir.
  • $ a ^ $ b : $ a veya $ b olarak ayarlanm─▒┼č ancak ikisi de ayarlanmam─▒┼č bitler.
  • ~ $ a : $ a ile ayarlanan bitler belirlenmez ve bunun tersi de ge├žerlidir.
  • $ a << $ b : $ a $ b ad─▒m─▒n─▒n bitlerini sola kayd─▒r─▒n (her ad─▒m "iki ile ├žarpma" anlam─▒na gelir)
  • $ a >> $ b : $ a $ b ad─▒mlar─▒n─▒n bit de─čerlerini sa─ča kayd─▒r─▒n (her ad─▒m "iki ile b├Âl" anlam─▒na gelir)

Dize Operat├Ârleri:

  • a. $ b : $ a ile $ b aras─▒nda birle┼čtirme.

Dizi ─░┼čle├žleri:

  • $ a + $ b : $ a ve $ b aras─▒nda birle┼čme.
  • $ a == $ b : $ a ve $ b ayn─▒ anahtar / de─čer ├žiftlerine sahipse TRUE.
  • $ a === $ b : E─čer $ a ve $ b ayn─▒ s─▒rada ve ayn─▒ t├╝rde ayn─▒ anahtar / de─čer ├žiftine sahipse DO─×RU.
  • $ a! = $ b : $ a $ b'ye e┼čit de─čilse, TRUE.
  • $ a <> $ b : $ a $ b'ye e┼čit de─čilse, TRUE.
  • $ a! == $ b : $ a $ b ile ayn─▒ de─čilse TRUE.

Atama Operat├Ârleri:

  • $ a = $ b : $ b de─čeri $ a'ya atanm─▒┼č
  • $ a + = $ b : $ a = $ a + $ b ile ayn─▒
  • $ a - = $ b : $ a = $ a - $ b ile ayn─▒
  • $ a * = $ b : $ a = $ a * $ b ile ayn─▒
  • $ a / = $ b : $ a = $ a / $ b ile ayn─▒
  • $ a% = $ b : $ a = $ a% $ b ile ayn─▒
  • $ a ** = $ b : $ a = $ a ile ayn─▒ ** $ b
  • $ a. = $ b : $ a = $ a ile ayn─▒. $ b
  • $ a & = $ b : $ a = $ a & $ b ile ayn─▒
  • $ a | = $ b : $ a = $ a ile ayn─▒ | $ b
  • $ a ^ = $ b : $ a = $ a ^ $ b ile ayn─▒
  • $ a << = $ b : $ a = $ a ile ayn─▒ << $ b
  • $ a >> = $ b : $ a = $ a >> $ b ile ayn─▒

Not

and operat├Âr ve or operat├Âr atama operat├Âr├╝nden daha d├╝┼č├╝k ├Ânceli─če sahiptir = .

Bunun anlam─▒ $a = true and false; e┼čde─čerdir ($a = true) and false .

├ço─ču durumda, muhtemelen kullanmak isteyeceksiniz && ve bu || , C, Java veya JavaScript gibi dillerden bilinen ┼čekilde davran─▒r.


127







Uzay Gemisi Operat├Âr├╝ <=> (PHP 7'de Eklendi)

<=> Uzay gemisi operat├Âr├╝ ├Ârnekleri (PHP 7, Kaynak: PHP Manual):

Tamsay─▒l─▒, Kayan, Dizeler, Diziler ve ├ť├žl├╝ De─či┼čkenlerin Kar┼č─▒la┼čt─▒r─▒lmas─▒ i├žin Nesneler.

 // Integers
echo 10 <=> 10; // 0
echo 10 <=> 20; // -1
echo 20 <=> 10; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
// Comparison is case-sensitive
echo "B" <=> "a"; // -1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1

// Objects
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 0

$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "c"]; 
echo $a <=> $b; // -1

$a = (object) ["a" => "c"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 1

// only values are compared
$a = (object) ["a" => "b"]; 
$b = (object) ["b" => "b"]; 
echo $a <=> $b; // 1
 

98







{} K─▒v─▒rc─▒k parantez

Ve son yaz─▒lanla ilgili baz─▒ kelimeler

 $x[4] = 'd'; // it works
$x{4} = 'd'; // it works

$echo $x[4]; // it works
$echo $x{4}; // it works

$x[] = 'e'; // it works
$x{} = 'e'; // does not work

$x = [1, 2]; // it works
$x = {1, 2}; // does not work

echo "${x[4]}"; // it works
echo "${x{4}}"; // does not work

echo "{$x[4]}"; // it works
echo "{$x{4}}"; // it works
 

67







Bo┼č birle┼čtirme operat├Âr├╝ (??)

Bu i┼čle├ž, birlikte bir ├╝├žl├╝ i┼čle├ž kullanmaya ihtiya├ž duyulan genel durum i├žin PHP 7.0'da eklenmi┼čtir isset() . Varsa ve yoksa ilk i┼člecini d├Ând├╝r├╝r NULL ; aksi halde ikinci i┼členeni d├Ând├╝r├╝r.

 <?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>
 

61







PHP Dizeleri: PHP Dizeleri sadece iki ┼čekilde de─čil, d├Ârt ┼čekilde belirtilebilir:

1) Tekli Al─▒nt─▒ Dizeleri:

 $string = 'This is my string'; // print This is my string
 

2) Çift Alıntı Dizeleri:

 $str = 'string';

$string = "This is my $str"; // print This is my string
 

3) Heredoc:

 $string = <<<EOD
This is my string
EOD; // print This is my string
 

4) Nowdoc (PHP 5.3.0 ve sonras─▒nda):

 $string = <<<'END_OF_STRING'
    This is my string 
END_OF_STRING; // print This is my string
 

58







SORU:

Ne => demek istiyorsun?


CEVAP:

=> ─░nsanlar─▒n sembol├╝ "Key" => "Value" , ili┼čkisel dizilerdeki ├žiftleri ay─▒rmak i├žin kullanmaya karar verdi mi .

tertipleyerek:

Bunu anlamak i├žin, ─░li┼čkisel Dizilerin ne oldu─čunu bilmek zorunday─▒z. Geleneksel bir programc─▒ bir diziyi ( PHP'de ) d├╝┼č├╝nd├╝─č├╝nde ortaya ├ž─▒kan ilk ┼čey ┼čuna benzer:

 $myArray1 = array(2016, "hello", 33);//option 1

$myArray2 = [2016, "hello", 33];//option 2

$myArray3 = [];//option 3
$myArray3[] = 2016; 
$myArray3[] = "hello"; 
$myArray3[] = 33;
 

Kodun daha sonraki b├Âl├╝mlerinde diziyi ├ža─č─▒rmak isteseydik, yapabilirdik:

 echo $myArray1[1];// output: hello
echo $myArray2[1];// output: hello
echo $myArray3[1];// output: hello
 

├çok uzak ├žok iyi. Ancak, insan olarak, biz zor oldu─čunu endeks hat─▒rlamak bulabilir [0] dizinin de─čeridir y─▒l 2016, endeks [1] dizinin bir oldu─čunu selam ve endeks [2] dizisinin basit bir tamsay─▒ de─čeri . O zaman sahip olabilece─čimiz alternatif, Ortak Dizili┼č ad─▒ verilen ┼čeyi kullanmak . Bir ─░li┼čkisel dizi, bir S─▒ral─▒ Diziden birka├ž farkl─▒l─▒─ča sahiptir ( ├Ânceki vakalar─▒n, ├Ânceden belirlenmi┼č bir s─▒radaki kullan─▒lan dizini, her bir sonraki de─čer i├žin 1 oran─▒nda art─▒rarak art─▒rd─▒klar─▒ndan beri oldu─ču gibi ).

Farkl─▒l─▒klar ( s─▒ral─▒ ve ili┼čkisel dizi aras─▒nda ):

  • Bir ─░li┼čkisel Dizi bildirgesini bozmakla birlikte, yaln─▒zca value diziye koymak istediklerinizi eklemezsiniz, ayn─▒ zamanda key diziyi ├ža─č─▒r─▒rken kullanmak istedi─činiz dizini de (dizinin de─čerini ) eklersiniz. kodu. A┼ča─č─▒daki s├Âzdizimi 's beyan─▒ s─▒ras─▒nda kullan─▒l─▒r: "key" => "value" .

  • ─░li┼čkilendirici key Diziyi kullan─▒rken , de─čer daha sonra istenen diziyi almak i├žin dizinin dizinine yerle┼čtirilir value .

├ľrne─čin:

     $myArray1 = array( 
        "Year" => 2016, 
        "Greetings" => "hello", 
        "Integer_value" => 33);//option 1

    $myArray2 = [ 
        "Year" =>  2016, 
        "Greetings" => "hello", 
        "Integer_value" => 33];//option 2

    $myArray3 = [];//option 3
    $myArray3["Year"] = 2016; 
    $myArray3["Greetings"] = "hello"; 
    $myArray3["Integer_value"] = 33;
 

Ve ┼čimdi, ├Âncekiyle ayn─▒ ├ž─▒kt─▒y─▒ almak i├žin, key de─čer dizilerde kullan─▒lacakt─▒:

 echo $myArray1["Greetings"];// output: hello
echo $myArray2["Greetings"];// output: hello
echo $myArray3["Greetings"];// output: hello
 

N─░HA─░ NOKTA:

Bu y├╝zden yukar─▒daki ├Ârnekte, => sembol├╝n, dizideki de─čerlerin ba┼člamas─▒n─▒ DURING bir dizideki dizilerdeki her key ve value ├žiftler aras─▒ndaki ili┼čkiyi ifade etmek i├žin kullan─▒ld─▒─č─▒n─▒ g├Ârmek olduk├ža kolayd─▒r .


43







Soru :

PHP'de "&" ne anlama geliyor?

PHP "&" operat├Âr├╝

Al─▒┼čt─▒ktan sonra hayat─▒ daha kolay hale getirir .. (a┼ča─č─▒daki ├Ârne─či dikkatlice kontrol edin)

& genellikle $ a ve $ b olarak ayarlanm─▒┼č bitleri kontrol eder.

Bu ├ža─čr─▒lar─▒n nas─▒l ├žal─▒┼čt─▒─č─▒n─▒ fark ettin mi?

    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
    error_reporting(E_ALL & ~E_NOTICE);
    error_reporting(E_ALL);
 

Yani her ┼čeyden ├Ânce, bitsel operat├Âr ve bitlerin oyunudur.

Bunlar─▒n yararl─▒ bir ├Ârne─či, a┼ča─č─▒daki gibi kolay yap─▒land─▒rmalard─▒r, b├Âylece tek bir tamsay─▒ alan─▒ sizin i├žin binlerce tara─č─▒ saklayabilir.

├ço─ču ki┼či zaten dok├╝manlar─▒ okudu ama bu bitsel operat├Ârlerin ger├žek d├╝nyadaki kullan─▒mlar─▒n─▒ rahatlatmad─▒.

Sevece─činiz bir ├Ârnek

 <?php

class Config {

    // our constants must be 1,2,4,8,16,32,64 ....so on
    const TYPE_CAT=1;
    const TYPE_DOG=2;
    const TYPE_LION=4;
    const TYPE_RAT=8;
    const TYPE_BIRD=16;
    const TYPE_ALL=31;

    private $config;

    public function __construct($config){
        $this->config=$config;

        if($this->is(Config::TYPE_CAT)){
            echo 'cat ';
        }
        if($this->is(Config::TYPE_DOG)){
            echo 'dog ';
        }
        if($this->is(Config::TYPE_RAT)){
            echo 'rat ';
        }
        if($this->is(Config::TYPE_LION)){
            echo 'lion ';
        }
        if($this->is(Config::TYPE_BIRD)){
            echo 'bird ';
        }
        echo "\n";
    }

    private function is($value){
        return $this->config & $value;
    }
}

new Config(Config::TYPE_ALL);
// cat dog rat lion bird
new Config(Config::TYPE_BIRD);
//bird
new Config(Config::TYPE_BIRD | Config::TYPE_DOG);
//dog bird
new Config(Config::TYPE_ALL & ~Config::TYPE_DOG & ~Config::TYPE_CAT);
//rat lion bird
 

33







== de─či┼čken veri tipi dikkate al─▒nmadan kontrol e┼čitli─či i├žin kullan─▒l─▒r

=== onay e┼čitlik i├žin kullan─▒lan her iki de─či┼čken de─čeri ve veri t├╝r├╝

├ľrnek

$a = 5

  1. if ($a == 5) - do─čru olarak de─čerlendirecek

  2. if ($a == '5') - true olarak de─čerlendirecektir, ├ž├╝nk├╝ bu iki de─čeri kar┼č─▒la┼čt─▒r─▒rken PHP dahili olarak bu string de─čerini integer'e ├ževirir ve sonra her iki de─čeri kar┼č─▒la┼čt─▒r─▒r.

  3. if ($a === 5) - do─čru olarak de─čerlendirecek

  4. if ($a === '5') - false olarak de─čerlendirecektir, ├ž├╝nk├╝ de─čer 5'tir, ancak bu 5, bir tamsay─▒ de─čildir.


26







Bo┼č Ge├ži┼č operat├Âr├╝ "??" (PHP 7'ye eklendi)

Bir operat├Âr i├žin en dikkat ├žekici isim de─čil, fakat PHP 7 olduk├ža kullan─▒┼čl─▒ nezaket birle┼čimi getiriyor, bu y├╝zden bir ├Ârnek payla┼čaca─č─▒m─▒ d├╝┼č├╝nd├╝m.

PHP 5'te, zaten bir de─čeri test eden ve e─čer do─čruysa ikinci ├Â─čeyi d├Ând├╝ren ├╝├žgeni bir i┼čleci var ve e─čer de─čilse d├Ând├╝r├╝r:

 echo $count ? $count : 10; // outputs 10
 

Birincisi ayn─▒ysa, ikinci ├Â─čeyi atlaman─▒za izin veren bir kestirme yol vard─▒r: echo $ count?: 10; // 10 ├ž─▒kt─▒lar

PHP 7'de ayr─▒ca ?? Genellikle iki soru i┼čaretini nas─▒l kullanaca─č─▒m─▒ belirten a┼č─▒r─▒ kar─▒┼č─▒kl─▒─č─▒ belirtmek yerine, bunun yerine bir dizi de─čer zincirlememize izin veren operat├Âr. Soldan sa─ča okuma, var olan ve bo┼č olmayan ilk de─čer, d├Ând├╝r├╝lecek de─čerdir.

 // $a is not set
$b = 16;

echo $a ?? 2; // outputs 2
echo $a ?? $b ?? 7; // outputs 16
 

Bu yap─▒, belki kullan─▒c─▒ giri┼činden veya mevcut konfig├╝rasyondan gelen bir veya daha fazla de─čere ├Âncelik vermek ve bu konfig├╝rasyon eksikse, belirli bir varsay─▒lan de─čere g├╝venle geri d├Ânmek i├žin kullan─▒┼čl─▒d─▒r. Bu k├╝├ž├╝k bir ├Âzellik ama uygulamalar─▒m PHP 7'ye y├╝kseldi─činde en k─▒sa zamanda kullanaca─č─▒m─▒ bildi─čim bir ├Âzellik.


23







Bo┼članabilir iade t├╝r├╝ bildirimi

PHP 7, iade tipi bildirimleri i├žin destek ekler. Ba─č─▒ms─▒z de─či┼čken t├╝r├╝ bildirimlerine benzer ┼čekilde, d├Ân├╝┼č t├╝r├╝ bildirimleri bir i┼člevden d├Ând├╝r├╝lecek de─čerin t├╝r├╝n├╝ belirtir. Ayn─▒ tip, d├Ân├╝┼č tipi bildirimleri i├žin de ge├žerlidir; ayr─▒ca, ba─č─▒ms─▒z de─či┼čken t├╝r├╝ bildirimleri i├žin de ge├žerlidir.

S─▒k─▒ yazman─▒n ayn─▒ zamanda geri d├Ân├╝┼č t├╝r├╝ bildirimleri ├╝zerinde etkisi vard─▒r. Varsay─▒lan zay─▒f modda, d├Ând├╝r├╝len de─čerler, bu t├╝r de─čilse, do─čru t├╝re zorlan─▒r. G├╝├žl├╝ modda, d├Ând├╝r├╝len de─čer do─čru t├╝rde olmal─▒d─▒r, aksi takdirde bir TypeError at─▒l─▒r.

PHP 7.1.0'dan itibaren, geri d├Ân├╝┼č de─čerleri tip ismini bir soru i┼čareti (?) ─░le ├Ân ekleyerek s─▒f─▒rlanabilir olarak i┼čaretlenebilir. Bu, i┼člevin belirtilen t├╝r veya NULL d├Ând├╝rd├╝─č├╝n├╝ g├Âsterir.

 <?php
function get_item(): ?string {
    if (isset($_GET['item'])) {
        return $_GET['item'];
    } else {
        return null;
    }
}
?>
 

Kaynak


10







Splat Operat├Âr├╝ Olarak ├ť├ž Nokta (...) (PHP 5.6'dan beri)

PHP, Splat Operator olarak adland─▒r─▒lan bir operat├Âre "..." (├ť├ž nokta) sahiptir. Bir fonksiyondaki rastgele parametre say─▒s─▒n─▒ iletmek i├žin kullan─▒l─▒r ve bu fonksiyona Variadic Functions denir. "..." (├ť├ž nokta) kullan─▒m─▒na ├Ârnekler verelim.

├ľrnek 1:

 <?php
function calculateNumbers(...$params){
    $total = 0;
    foreach($params as $v){
        $total = $total + $v;
    }
    return $total;
}

echo calculateNumbers(10, 20, 30, 40, 50);

//Output 150
?>
 

CalculateNumbers () i┼člevinin her arg├╝man─▒ "ÔÇŽ" kullan─▒ld─▒─č─▒nda $ params i├žinden bir dizi olarak ge├žer.

"ÔÇŽ" ─░┼člecini kullanman─▒n bir├žok farkl─▒ yolu vard─▒r. Baz─▒ ├Ârneklerin alt─▒nda:

├ľrnek 2:

 <?php
function calculateNumbers($no1, $no2, $no3, $no4, $no5){
    $total = $no1 + $no2 + $no3 + $no4 + $no5;
    return $total;
}

$numbers = array(10, 20, 30, 40, 50);
echo calculateNumbers(...$numbers);

//Output 150
?>
 

├ľrnek 3:

 <?php
function calculateNumbers(...$params){
    $total = 0;
    foreach($params as $v){
        $total = $total + $v;
    }
    return $total;
}
$no1 = 70;
$numbers = array(10, 20, 30, 40, 50);
echo calculateNumbers($no1, ...$numbers);

//Output 220
?>
 

├ľrnek 4:

 <?php
function calculateNumbers(...$params){
    $total = 0;
    foreach($params as $v){
        $total = $total + $v;
    }
    return $total;
}

$numbers1 = array(10, 20, 30, 40, 50);
$numbers2 = array(100, 200, 300, 400, 500);
echo calculateNumbers(...$numbers1, ...$numbers2);

//Output 1650

?>
 

2