2016-05-11 11 views
16

Bir php dosyasında yalnızca bir return ifadesi olması yaygın mıdır? Varsa, birisi bana bunun başka dosyalarda nasıl kullanıldığını gösterebilir mi? Mükemmel bir örnek Laravel çerçevesindeki yapılandırma dosyalarıdır, örneğin database.php.Bir php dosyasında yalnızca bir return ifadesi olması yaygındır

+3

Yaygın değil, ama mükemmel kabul edilebilir ve uygun olabilir –

cevap

20

Hayır, yalnızca bir geri dönüş bildirimi olması çok yaygın değil, ancak yapılandırma bilgilerini ayrı bir config.php dosyasında saklamak için kullanılır, böylece yapılandırma php require ile başka yerlere eklenebilir.

//config.php 
<?php 
    return [ 
     'app_key' => 'SomeRandomString', 
     'app_secret' => 'SomeRandomString', 
    ]; 

-

// other-file.php 
<?php 
    $config = require('path/to/config.php'); 
    $facebook = new Facebook($config['app_key'], $config['app_secret']); 
+0

Bu, php'nin tüm sürümlerinde çalışır mı? Değilse hangi sürümü tanıttı? – CodesInChaos

+0

@CodesInChaos Bu, pratik olarak * her zaman mümkün olmuştur: http://php.net/manual/en/function.return.php – Jasper

+4

@scrubmx Parantez olmadan kullanımı kullanmak daha iyidir. Parantezler, işleve benzemeyen bir davranış önerir, bu sizin elde edeceğiniz şey değildir (yani "(" a ") gerektirir." B ";" ab "," a "ifadesini içermez ve döndürülen değeri" b "ile birleştirir. '). – Jasper

15

bir yer dosyası bir değer döndürür, include() veya require() varsayılan 1 yerine o değeri dönecektir.

Bu, genel kullanım değil, ancak bazı durumlarda, verdiğiniz yapılandırma dosyası örneği gibi yararlıdır. (Pek çok PHP uygulamasında gördüğüm çirkin alternatif, yapılandırma değerlerini global değişkenler veya sabitler olarak depolamaktır.)

+4

Alternatif olarak kullanılan bir alternatif statik bir sınıf kullanmaktır. Bu, kodda her yerde ** mevcut olması avantajına sahiptir. –

-1

Böyle bir API-benzeri oluşturmak istediğimde buna benzer bir şey yapıyorum. belirli php dosyalarından veriye erişme yolu. Mesela ben şu diziyi olan bir php dosyası olabilir:

<?php 

$cars = array(
    'Coupe' => array(
     'Make' => 'Acura', 
     'Model' => 'Integra', 
     'Doors' => 2, 
     'HorsePower' => 150 
    ) 
    'Sedan' => array(
     'Make' => 'Toyota', 
     'Model' => 'Camry', 
     'Doors' => 4, 
     'HorsePower' => 115 
    ) 
) 

?> 

Sonra istediğim bilgiyi çıkarmak için $cars diziye kazar o dosyanın sonuna bir şeyler eklemek olabilir; javascript kullanarak bir AJAX çağrısı gibi. İstenen bilgileri çıkarmak için dizi boyunca tekrarlayabilirsiniz. Yani, örneğin, ben parametresini Car='Coupe'POST demek, o zaman aşağıdaki gibi bir koşul ayarlayabilirsiniz:

if(isset($_POST['Car'])) { 
    foreach($cars as $k => $type) { 
     if($type == $_POST['Car']) { 
      echo json_encode($type); 
     } 
    } 
} 

Hangi çıktılayacaktır içinde Coupe dizisi ile bir JSON dizini. Bunun, return aramasını kullanmadığının farkındayım, ancak tek başına PHP dosyalarında dizileri kullanmamın bir yolu var.

+2

Bu hiç şüphesiz ilginç olsa da, soruya cevap vermiyor. – duskwuff

+1

@duskwuff Yeterince adil, diye düşündüm, veri bağımsız bir php dosyasından nasıl döndürülebileceğine dair bir örnek arıyordu, bu en azından ilginç bir örnek olabilir. Dizide çok fazla yerdeydim ve asıl soru üzerinde daha az şey yaptım. Yani, kabul etti! –

İlgili konular