2016-04-02 22 views
-2

Ich habe etwas alten Legacy-Code in PHP 5.3 geschrieben.Was ist der Unterschied in <? und <? php

Alle PHP-Blöcke in diesem Code sind wie

<? some_php_code_here ?> 

und mein Apache ignoriert sie einfach, während gute Werke mit

<?php some_php_code_here ?> 

Warum alten Code ungültig Blöcke enthält, und warum diese alten Code funktioniert gut auf altem Server? Es ist wirklich schwer, etwas mit so viel besondere Symbole, sorry für dumme Frage kurzen Tag

+1

in '' Weise zu arbeiten, müssen Sie 'shorttag' in' php.ini' aktivieren. Aber es ist nicht zu empfehlen. –

+1

' paskl

+2

Es kann Ihnen helfen, die Dokumentation der von Ihnen verwendeten Tools zu lesen. Sie können nicht programmieren, ohne in die Dokumentation zu schauen. Zumindest nicht auf eine etwas effiziente und erfolgreiche Art und Weise. – arkascha

Antwort

1

<? heißt ein PHP

Hier ist, was die manual darüber

PHP Google zu sagen hat erlaubt auch für kurze offene tag <? (davon wird abgeraten, da nur verfügbar ist, wenn es mit der Konfigurationsdatei-Direktive short_open_tag php.ini aktiviert wurde oder wenn PHP mit der Option --enable-short-tags konfiguriert wurde.

Sie können zur Laufzeit ermöglichen, mit <?php ini_set('short_open_tag',1) ?>

Aber wenn Sie dies tun, werden Sie nicht in der Lage sein, Inline-XML zu verwenden, wie so <?xml ?> und stattdessen können Sie

<?php echo '<?xml version="1.0"?>'; ?> 

Wie verwenden ich eine Randnotiz häufig verwenden:

<a href="<?= "$hello_url" ?>"><?= "Hello world" ?></a> 

<?= 'foo' ?> i s entsprechen <?php echo 'foo' ?> und sieht viel sauberer in Template-Dateien meiner Meinung nach

Seit PHP-Version 5.4, <?= ist nicht mehr an short_open_tag aber vor, dass es war, so sollte darauf geachtet werden, wenn Sie Ihren Code ausgeführt werden könnten, auf ältere PHP-Versionen

Verwandte Themen