Multiple tuhaf davranmaya PHP dahil içerir

2 Cevap php

Ben aşağıdaki kodu vardır:

if (include_once(dirname(__FILE__).'/file.php')
    || include_once(dirname(__FILE__).'/local/file.php')
    )
{

PHP dahil etmeye çalışır, çünkü bu bir hata neden "1" (muhtemelen dirname(__FILE__).'/file.php' || dirname(__FILE__).'/local/file.php')

Ikinci çizgisini yorumlarında bu ikinci dosyayı kullanmaz aslında başka amaçlandığı gibi bu işi yapar. Gerçekten elseif ve kod tekrarını burada kullanmak, ya da bu çalışma almak için bir yol var mı gerekiyor?

$ php --version
PHP 5.2.6-3ubuntu4.2 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug 21 2009 19:14:44)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

2 Cevap

Grup include ifadeleri:

if ( (include_once dirname(__FILE__).'/file.php')
      ||
     (include_once dirname(__FILE__).'/local/file.php')
   )

example #4 kılavuz sayfasına bakınız:

<?php
// 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';
}
?>

Operatör öncelik bastırmak için parantez kullanmayı deneyin.

if ( (include_once('xml.php')) || (include_once('xml.php')) ) {
    echo 'bah';
}