كيفية إعداد موقع على نطاق المتغيرات في php?

StackOverflow https://stackoverflow.com/questions/13000

  •  08-06-2019
  •  | 
  •  

سؤال

أريد تعريف شيء مثل هذا في php:

$EL = "\n<br />\n";

ومن ثم استخدام هذا المتغير باعتبارها "endline" علامة على موقع مثل هذا:

echo "Blah blah blah{$EL}";

كيف يمكنني تحديد $ش مرة واحدة (في فقط 1 ملف) ، في كل صفحة على موقعي ، لا يجب الإشارة إلى ذلك باستخدام (الغريب إلى الوراء) global $EL; البيان في كل صفحة ؟

هل كانت مفيدة؟

المحلول

معظم المواقع PHP يجب أن يكون الملف (أنا أسميها رأس) التي تشمل على كل صفحة من صفحات الموقع.إذا وضعت أن السطر الأول من التعليمات البرمجية في ملف الرأس ، ثم تدرج مثل هذا في كل صفحة:

 include 'header.php';

لن تضطر إلى استخدام العالمي الكلمة أو أي شيء السطر الثاني من الكود الذي كتب يجب أن تعمل.

تحرير:أوه آسف, لن تعمل داخل وظائف...الآن أفهم المشكلة.

تحرير #2:حسنا, اتخاذ بلدي الأصلي المشورة مع الرأس ، ولكن استخدام تعريف() بدلا من متغير.أولئك العمل داخل الوظائف بعد أن تدرج.

نصائح أخرى

يبدو وظيفة ثابتة.ترى وظيفة تعريف().

يمكنك استخدام PHP5?إذا قمت بتعريف __autoload() وظيفة و استخدام فئة مع بعض الثوابت ، يمكنك الاتصال بهم حيث كنت في حاجة إليها.فقط المشددة شيء في هذا هو أن عليك أن اكتب شيئا قليلا مثل

MyClass::MY_CONST

فائدة هذا إذا قررت أي وقت مضى إلى تغيير الطريقة التي يمكنك التعامل مع خطوط جديدة, لديك فقط لتغيير ذلك في مكان واحد.

بالطبع السلبية المحتملة هو انك تتصل بما في ذلك وظيفة إضافية (__autoload()), تشغيل تلك الوظيفة (عند الرجوع إلى فئة) ، ثم يقوم بتحميل ملف آخر (ملف class).التي قد تكون أكثر النفقات العامة مما يستحق.

إذا جاز تقديم اقتراح ، سيكون من تجنب هذا النوع من مرددا يتطلب مرددا الكلمات (مثل <br />).إذا كنت قد أنشأت شيء أكثر من ذلك بقليل قالب سقو ، يمكنك التعامل مع nl دون الحاجة إلى صراحة نوع منهم.وذلك بدلا من

echo "Blah Blah Blah\n<br />\n";

محاولة:

<?php
if($condition) {
?>
<p>Blah blah blah
<br />
</p>
<?php
}
?>

يبدو لي مثل استدعاء الطبقات أو بما في ذلك المتغيرات في الوظائف وكذلك الكثير من الأعمال التي لا تحتاج إلى القيام به ، إذا كان ذلك ممكنا, هذه الأنواع من الحالات هي الأفضل تجنبها.

هل هذا define ('el','\n\<\br/>\n'); احفظ el.php

ثم يمكنك تضمين أي الملفات التي تريد،.هـ

echo 'شيء'.ش;// ملاحظة أنا فقط إضافة إل في نهاية السطر أو في الجبهة

نأمل أن يكون هذا مساعدة

ملاحظة يرجى إزالة '\' بعد < br منذ كان في أو أنها لن تظهر br الوسم على الجواب...

@svec نعم هذا, أنت فقط يجب أن يتضمن ملف داخل الدالة أيضا.هذه هي الطريقة الأكثر من البرنامج يعمل.

function myFunc()
 {
require 'config.php';
//Variables from config are available now.
 }

وثمة خيار آخر هو استخدام كائن مع الجمهور خصائص ثابتة.اعتدت على استخدام $GLOBALS ولكن معظم المحررين لا الإكمال التلقائي $GLOBALS.أيضا الأمم المتحدة مثيل دروس متوفرة في كل مكان (لأنه يمكنك instatiate في كل مكان دون أن يخبر PHP أنت ذاهب إلى استخدام فئة).على سبيل المثال:

<?php

class SITE {
    public static $el;
}

SITE::$el = "\n<br />\n";

function Test() {
    echo SITE::$el;
}

Test();

?>

وهذا الناتج <br />

هذا هو أيضا أسهل للتعامل مع من costants كما يمكنك وضع أي نوع من القيمة داخل المنشأة (صفيف السلسلة ، الباحث ، وما إلى ذلك) في حين أن الثوابت لا يمكن أن تحتوي على المصفوفات.

هذا واقترح إلى بلدي قبل المستخدم على PhpEd المنتديات.

svec استخدام إطار PHP.أي هناك الكثير منهم الى هناك.هذا هو الطريق الصحيح للقيام بذلك.مع إطار عليك دخول واحدة نقطة للتطبيق الخاص بك, حتى تحديد موقع نطاق المتغيرات سهل الطبيعية.أيضا لا تحتاج إلى يهتمون بما في ذلك رأس الملفات ولا التحقق إذا كان المستخدم هو تسجيل الدخول على كل صفحة - لائق الإطار سوف تفعل ذلك بالنسبة لك.

انظر:

استثمار بعض الوقت في تعلم واحد منهم وسوف تدفع مرة أخرى في وقت قريب جدا.

IIRC حل مشترك هو سهل الملف الذي يحتوي على الإعلانات التي تشمل في كل ملف المصدر ، شيء من هذا القبيل 'constants.inc.php'.هناك يمكنك أن تحدد مجموعة من التطبيق على نطاق المتغيرات التي يتم استيرادها ثم في كل ملف.

لا يزال لديك لتوفير تشمل التوجيه في كل ملف مصدر واحد التي يمكنك استخدامها.حتى أنني رأيت بعض المشاريع باستخدام هذه التقنية إلى توفير تعريب لعدة لغات.أنا أفضل gettext الطريقة ولكن ربما هذا البديل هو أسهل للعمل مع بالنسبة للمستخدم العادي.

تحرير بالنسبة لمشكلتك أنا ريكومينت استخدام $GLOBALS[], انظر على سبيل المثال رقم 2 للحصول على التفاصيل.

إذا كان هذا لا يزال لا ينطبق ، كنت أحاول أن يسو أسفل PHP5 الكائنات وخلق ثابت المفرد الذي يوفر حاجة ثابتة الثوابت (http://www.developer.com/lang/php/article.php/3345121)

الدورات ستكون أفضل رهان ، إذا كانت البيانات المستخدم محددة وإلا مجرد استخدام conifg الملف.config.php:

<?php
$EL = "\n<br />\n";
?>

ثم على كل صفحة إضافة

require 'config.php'

كنت سوف تكون قادرة على الوصول إلى $ش على تلك الصفحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top