2011-02-10 16 views
19

Web'de her ikisine birden çok örnek var. Php kılavuzu, "include() statement [...]" diyor, çelişkili görünüyor - eğer bir ifade parantez olmamalı mı? php'nin bir işlevi veya ifadesi var mı?

bu işin ikisi

:

include('somefile.php'); 
include 'somefile.php; 

Yani ya başkasının bakım gerekir?

+3

Hayır'ı yankı kullanın. –

cevap

28

) (dahil bir özel dil inşa olduğundan, parantezler argümanı etrafında değil gereklidir.

Bunlar

da "özel formlar" olarak adlandırılan ve echo ve return tablolar gibi şeyleri içerir. Bunların hiçbiri işlevsizken, hala ifadelerden ve deyimlerden bahsedebilirsiniz, ilkinin farkı, ikinci sırada bulunmayan bir değere sahiptir. include, include_once, require ve require_once numaralı telefon numaralarından itibaren bir değer döndürdüğünüzde (include başarılı olursa TRUE), ifadelerde kullanılabilirler. Bu gerekçeyle, "dahil etme ifadesi" yanlış olur, ancak include s neredeyse her zaman deyim olarak kullanılır. eG

// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('') 
if (include('vars.php') == 'OK') { 
    echo 'OK'; 
} 

// works 
if ((include 'vars.php') == 'OK') { 
    echo 'OK'; 
} 
+1

+1 "dil yapısı" için – igorw

1

Parens içindeki tek değerler, değerin kendisinde bulunur, bu nedenle parenslerin kendileri hiçbir şekilde sonuçlanmaz. Sadece bir parametre olan

-1

Tablolar, aynı zamanda sahip parantezi ör: Manuel (my vurgu) den aktaran

echo ('hello world'); 
9

bir ifadedir sayılabilir. PHP belgelerinin birçok alanında, her şey bir ifade olarak adlandırılır. Örnek (kontrol yapılarından) - "Bir ifade, bir ödev, bir işlev çağrısı, bir döngü, bir koşullu ifade veya hiçbir şey yapmayan bir ifade (boş bir ifade) olabilir."

Bir deyim ve işlevler arasındaki fark, tek bir dilin semantik konusudur. Böylece, PHP'nin bunu açık bir şekilde tanımlaması ya da belirsiz kalmasına izin vermesi var.

+0

+1 negatif örnek için – PeerBr

+0

Bu gerçekten negatif bir örnek değildir, çünkü parantezi 'include' etrafında koymak parantezin argümanın etrafına konmasını engellemez. 'if ((include ('vars.php')) == 'OK') {echo 'OK'; } '. – dotancohen

1

include, require, echo, print ve diğer birkaç anahtar kelimenin yerine işlev çağrıları daha kendi başlarına dil yapıları vardır ve parantez gerekmez. Ancak, bazı insanlar işlev çağrıları yapıyormuş gibi davranıyor ve parantez kullanıyorlar. Onlar aynı.

-1

Tek farkın, yapmak istediğiniz şey olduğuna inanıyorum. Örneğin

, bu iki

echo 'Hello World'; 
echo ('Hello World'); 

... Her iki yazıcı Merhaba Dünya.

O sadece size en rahat hissettiğiniz ve eğer benim gibi iseniz, size komut yapmak istiyorum güzel görünüyorsun, ne yapmak istediğinizi: D

5

parantezler bir fonksiyon için parametrelerdir. include ile ya bir işlev veya php olarak bir deyim olarak kullanabilirsiniz.

Include() özel bir dil yapısı olduğundan, parantezleri argümanı etrafında gerekli değildir. Burada

Dokümanları: değildir bu yüzden here

yankı aslında bir işlev değil PHP kılavuzunda alıntı echo aynı konsepti ile http://php.net/manual/en/function.include.php

, (bir dil oluşumudur) Parantez kullanmak için gerekli gereklidir. echo (diğer bazı dil yapılarının aksine) bir işlev gibi davranmaz, bu nedenle her zaman bir işlev bağlamında kullanılamaz. Echo için

0

daima belirli bir neden olmadan bir bakım asla, "testi"

<?php 
// this will give you error 
echo ("test","test"); 

//that will work fine 
echo "test","test"; 
?> 
İlgili konular