2011-01-19 10 views
50

के अंदर एम्बेडिंग है तो एम्बेड करने का सही तरीका क्या है और अन्यथा एचटीएमएल के अंदर स्थितियां?यदि अन्यथा एचटीएमएल

+0

क्या आप वाकई विपरीत नहीं हैं? –

उत्तर

14

this और उसके alternate है, जो अगर एचटीएमएल ब्लॉक के अंदर एम्बेडेड अधिक पठनीय हो जाता है देखें।

121

मैं पठनीयता के लिए निम्नलिखित वाक्यविन्यास की अनुशंसा करता हूं।

<? if ($condition): ?> 
    <p>Content</p> 
<? elseif ($other_condition): ?> 
    <p>Other Content</p> 
<? else: ?> 
    <p>Default Content</p> 
<? endif; ?> 

ध्यान दें, खुला टैग पर php को छोड़ते हुए आवश्यकता है कि short_open_tags आपके विन्यास, which is the default में सक्षम है। प्रासंगिक घुंघराले-ब्रेस-मुक्त सशर्त वाक्यविन्यास हमेशा सक्षम होता है और इस निर्देश के बावजूद इसका उपयोग किया जा सकता है।

+3

इस उदाहरण में बयान में 'PHP' गुम है। –

+3

@AdamYoungers इन्हें short_open_tags कहा जाता है, और जब आप उनके साथ परिचित नहीं हो सकते हैं, तो वे पूरी तरह से मान्य हैं। – coreyward

+3

मैं उनसे परिचित नहीं था। मैंने उपर्युक्त का उपयोग करने की कोशिश की और यह मेरा पृष्ठ तोड़ दिया। एक त्वरित खोज और मुझे लगता है कि आपको इसे अपनी php.ini फ़ाइल में सक्षम करना है ... http://stackoverflow.com/questions/2185320/how-to-enable-php-short-tags –

28
<?php if ($foo) { ?> 
    <div class="mydiv">Condition is true</div> 
<?php } else { ?> 
    <div class="myotherdiv">Condition is false</div> 
<?php } ?> 
0

आपको कई अलग-अलग तरीकों का पता चल जाएगा जो लोग उपयोग करते हैं और उनमें से प्रत्येक का अपना स्थान होता है।

<?php if($first_condition): ?> 
    /*$first_condition is true*/ 
<?php elseif ($second_condition): ?> 
    /*$first_condition is false and $second_condition is true*/ 
<?php else: ?> 
    /*$first_condition and $second_condition are false*/ 
<?php endif; ?> 

अपने php.ini विशेषता short_open_tag = true में हैं (यह सामान्य रूप से डिफ़ॉल्ट php.ini फ़ाइल का line 141 पर पाया जाता है) आप <?php से <? करने के लिए अपने php खुला टैग की जगह ले सकता। यह की सलाह नहीं है क्योंकि अधिकांश लाइव सर्वर वातावरण बंद हो गए हैं (कई सीएमएस जैसे ड्रूपल, वर्डप्रेस और जूमला सहित)। मैंने पहले ही ड्रूपल में शॉर्ट हैंड ओपन टैग का परीक्षण किया है और पुष्टि की है कि यह आपकी साइट को तोड़ देगा, इसलिए <?php के साथ चिपके रहें। short_open_tag सभी सर्वर कॉन्फ़िगरेशन में डिफ़ॉल्ट रूप से चालू नहीं है और अज्ञात सर्वर कॉन्फ़िगरेशन के लिए विकसित होने पर ऐसा नहीं माना जाना चाहिए। कई होस्टिंग कंपनियों के पास short_open_tag बंद है।

स्टैक एक्सचेंज में short_open_tag की त्वरित खोज 830 परिणाम दिखाती है। https://stackoverflow.com/search?q=short_open_tag यह बहुत से लोगों को कुछ ऐसी समस्याएं हैं जिनके साथ उन्हें खेलना नहीं चाहिए।

कुछ सर्वर वातावरण और अनुप्रयोगों के साथ, शॉर्ट हैंड PHP ओपन टैग अभी भी short_open_tagtrue पर आपके कोड को भी क्रैश कर देगा।

short_open_tag PHP6 में हटा दिया जाएगा, इसलिए छोटे हाथ टैग का उपयोग न करें।

भविष्य की सभी पीएचपी संस्करणों short_open_tag

छोड़ने की जाएगी शॉर्टकट "यह कई वर्षों है कि आप कम टैग का उपयोग नहीं करने के लिए सिफारिश की गई है" "और इसके बजाय पूर्ण टैग संयोजन का उपयोग करने के लिए। विस्तृत प्रसार के साथ एक्सएमएल और अन्य भाषाओं द्वारा इन टैग का उपयोग, सर्वर आसानी से उलझन में हो सकता है और गलत संदर्भ में गलत कोड को पार्स कर समाप्त कर सकता है। लेकिन क्योंकि इस छोटे कट इतने लंबे समय तक एक सुविधा रही है, वर्तमान में यह अभी भी पिछड़ा संगतता के लिए समर्थित है, लेकिन हम आपको सलाह देते हैं कि आप का उपयोग न करें।"- Jelmer सितं, 25 '12 पर 9:00 php: "short_open_tag = On" not working

और

आम तौर पर आप PHP जैसे तो लिखें: लेकिन अगर allow_short_tags निर्देश सक्षम किया गया है आप का उपयोग कर सकें। । इसके अलावा टैग सॉर्ट अतिरिक्त वाक्यविन्यास प्रदान करता है: जो के बराबर है

छोटे टैग शांत लग सकता है, लेकिन वे नहीं कर रहे हैं वे केवल अधिक समस्याओं का कारण बनता ओह ... और IIRC वे ख होगा।।। ई PHP6 से हटा दिया। Crozin 22:12 php short_open_tag problem

और

पर अगस्त 24 '10 जवाब क्यों भाग उत्तर देने के लिए, मैं Zend PHP 5 प्रमाणीकरण गाइड बोली चाहते हैं: एक के लिए "छोटे टैग थे, समय, PHP दुनिया में मानक; हालांकि, उनके पास एक्सएमएल हेडर के साथ विवाद की बड़ी कमी है और इसलिए, कुछ हद तक रास्ते से गिर गया है। " - Fluffy अप्रैल 13 '11 14:40 Are PHP short tags acceptable to use?

पर आप भी लोगों को निम्न उदाहरण का उपयोग देख सकते हैं:

<?php if($first_condition){ ?> 
    /*$first_condition is true*/ 
<?php }else if ($second_condition){ ?> 
    /*$first_condition is false and $second_condition is true*/ 
<?php }else{ ?> 
    /*$first_condition and $second_condition are false*/ 
<?php } ?> 

यह काम करेगा लेकिन यह अत्यधिक पर के रूप में यह रूप में नहीं माना है सिकोड़ी है सुपाठ्य और यह नहीं है कि आप इस प्रारूप का उपयोग किस प्रकार करेंगे। अगर आपके पास एक PHP फ़ाइल थी जहां आपके पास PHP कोड का एक ब्लॉक था जिसमें एम्बेडेड टैग नहीं थे, तो आप ब्रैकेट प्रारूप का उपयोग करेंगे।

निम्न उदाहरण से पता चलता है जब ब्रैकेट विधि

<?php 
if($first_condition){ 
    /*$first_condition is true*/ 
}else if ($second_condition){ 
    /*$first_condition is false and $second_condition is true*/ 
}else{ 
    /*$first_condition and $second_condition are false*/ 
} 
?> 

आप खुद के लिए इस कोड को आप तुम क्या पसंद कर सकते हैं कर रहे हैं उपयोग करने के लिए है, लेकिन अगर आपके एक नौकरी में एक टीम के साथ काम करने में यह सलाह दी जाती है सही परिस्थिति के लिए सही प्रारूप का उपयोग करने के लिए। यदि आप एम्बेडेड एचटीएमएल/PHP स्क्रिप्ट्स में ब्रैकेट का उपयोग करते हैं जो निकाले जाने का एक अच्छा तरीका है, क्योंकि कोई भी आपके बाद अपना कोड साफ़ नहीं करना चाहता है। आईटी मालिकों को सुगमता पर कोड की योग्यता और कॉलेज प्रोफेसरों ग्रेड की परवाह होगी।

अद्यतन

इसकी अभी स्पष्ट नहीं duskwuff से टिप्पणी के आधार पर यदि आशुलिपि (निराश php मानकों के द्वारा) या नहीं। मैं इस जवाब को अपडेट कर दूंगा क्योंकि मुझे और जानकारी मिलती है। लेकिन पोर्टेबिलिटी के लिए शॉर्टैंड खराब होने के बारे में वेब पर पाए गए कई दस्तावेजों के आधार पर। मैं अभी भी व्यक्तिगत रूप से इसका उपयोग नहीं करता क्योंकि यह कोई फायदा नहीं देता है और आपको प्रत्येक वेब होस्ट के लिए एक सेटिंग पर निर्भर होना चाहिए।

+1

"PHP6 में"? PHP 6 मौजूद नहीं है, और कभी नहीं होगा। अगला प्रमुख संस्करण PHP 7 है, और short_open_tags की स्थिति बदलने की उम्मीद नहीं है। – duskwuff

+0

@duskwuff यह संभव है कि आप उनके बारे में PHP7 पर कूदकर PHP6 को छोड़कर सही हो सकें। लेकिन वे PHP5 में निराश होने के रूप में short_open_tags पर विचार कर रहे हैं और उन्हें बहिष्कृत किया जाएगा। –

+2

आपको यह विचार कहां मिल रहा है कि वे "निराश" हैं, या "बहिष्कृत हो जाएंगे"? दस्तावेज कहता है कि यह सुझाव देने के लिए बिल्कुल कुछ भी नहीं है। http://php.net/manual/en/ini.core.php#ini.short-open-tag – duskwuff

7

संपादित करें: मैं @ पैट्रिक के उत्तर पर एक नोट बनाना चाहता हूं, लेकिन स्पष्ट रूप से स्टैक ओवरफ्लो सोचता है कि मेरी प्रतिष्ठा काफी अच्छी नहीं है। मुझे लगता है कि यह एक महत्वपूर्ण नोट है, क्योंकि यहां लैंडिंग करने वाले लोग सीखने के लिए ऐसा कर रहे हैं। यदि यह हटा दिया जाता है क्योंकि यह प्रश्न का उत्तर नहीं देता है, तो हो। यदि पैट्रिक अपना जवाब सही कर सकता है, तो इसे हटाने से कोई नुकसान नहीं होता है।

मुझे लगता है कि यह एक पुराना प्रश्न/उत्तर है, लेकिन यह बिंग सर्च में अत्यधिक है, इसलिए मुझे यहां उन PHP-भ्रमित आत्माओं के लिए यह टिप्पणी जोड़ने के लिए मजबूर किया गया है।

@Patrick मैकमोहन जवाब में, दूसरा टिप्पणी यहाँ नहीं पूरी तरह से सटीक ($ first_condition झूठी है और $ second_condition सच है) है:

<?php if($first_condition): ?> 
    /*$first_condition is true*/ 
<?php elseif ($second_condition): ?> 
    /*$first_condition is false and $second_condition is true*/ 
<?php else: ?> 
    /*$first_condition and $second_condition are false*/ 
<?php endif; ?> 

elseif आग चाहे $ first_condition सच है या गलत है, अतिरिक्त elseif कथन, यदि एकाधिक हैं तो करें।

मुझे कोई पीएचपी विशेषज्ञ हूँ, इसलिए मैं उस सही रास्ता कहने के लिए कि क्या पता नहीं है इस या कि और कि या अगर कोई PHP में यह कोड करने के लिए एक और/बेहतर तरीका है, लेकिन यह होगा अगर ELSE स्थितियों के विरुद्ध या शर्तों की तलाश करने वालों के लिए एक महत्वपूर्ण भेद हो।

स्रोत w3schools.com और मेरा स्वयं का अनुभव है।

+0

क्या आप निश्चित हैं? बस इसके साथ परीक्षण किया: 'if (true) {echo 'here';} elseif (true) {echo 'second';} else {echo 'whaddup';} बाहर निकलें; 'आउटपुट:" यहां "PHP 5.5 पर – Philipp

0
<?php if (date("H") < "12" && date("H")>"6") { ?> 
    src="<?php bloginfo('template_url'); ?>/images/img/morning.gif" 
<?php } elseif (date("H") > "12" && date("H")<"17") { ?> 
src="<?php bloginfo('template_url'); ?>/images/img/noon.gif" 
    <?php } elseif (date("H") > "17" && date("H")<"21") { ?> 
    src="<?php bloginfo('template_url'); ?>/images/img/evening.gif" 
    <?php } elseif (date("H") > "21" && date("H")<"24") { ?> 
    src="<?php bloginfo('template_url'); ?>/images/img/night.gif" 
    <?php }else { ?> 
    src="<?php bloginfo('template_url'); ?>/images/img/mid_night.gif" 
    <?php } ?> 
संबंधित मुद्दे