2016-04-12 10 views
-3

Blick auf den Code bekommen: wie die Variable in einer Funktion darüberWie die Variable innerhalb

// section one 
CTitle(); 
//section two 
$title = 'Ben'; 

// section three 
function CTitle(){ 
    global $title; 
    echo 'I am: '.$title; 
} 

Wie wir es nur Arbeit aufgerufen machen: die Reihenfolge eingehalten werden muss, drücken Sie die Variable nicht oben.

+1

Ort, um Ihre 'CTitle();' am Ende des Codes –

+3

Es sieht aus wie Sie die Funktion CTitle() sind Aufruf vor $ title Einstellung? Kannst du deine Funktion refaktorieren und den Parameter $ title übergeben? – WillardSolutions

+1

Die * echte * Frage lautet hier: * Warum * muss die Bestellung gepflegt werden? Was ist das Besondere daran? –

Antwort

1

Sie Sitzungen verwenden können Hier, während Sie die Reihenfolge beibehalten (mit ein paar Ergänzungen), wenn das eine Option ist w ish zu bedienen und kann überall in mehreren Seiten verwendet werden, was hier der Fall nach zu sehen, was Sie in den Kommentaren geschrieben zu sein scheint:

<?php 

session_start(); 

// section one 
CTitle(); 

//section two 
$title = 'Ben'; 

$_SESSION['var'] = $title; 

// section three 
function CTitle(){ 
    global $title; 

    $title = $_SESSION['var'] ; 

    echo 'I am: '.$title; 
} 

Kommentar Wesen:

„gute Frage Fred, die Reihenfolge sollte, weil sehen beibehalten werden: function CTitle() {// der Titel aus dem Inneren der Seite kommen müssen} // Sie sehen, und das muss in Echt zwischen dem Kopf-Tag sein - Ekumahost“

und Kontrolle ob Die Sitzung ist in allen Bereichen festgelegt.

I.e.:

<?php 

session_start(); 
if(isset($_SESSION['var'])){ 
// do something 
} 

EDIT:

Per my original comment, platzieren Sie Ihre CTitle(); am Ende des Codes:

// section one 

//section two 
$title = 'Ben'; 

// section three 
function CTitle(){ 
    global $title; 
    echo 'I am: '.$title; 
} 

CTitle(); 
+0

bitte, wir wollen nicht Sitzung hier verwenden ... Sitzung wird Server Ressourcen verbrauchen – Ekumahost

+0

@Ekumahost oh? Wie das? –

+0

Downvoter, wenn Sie etwas zu teilen haben, tun. Dies ist eine Lösung. –

4

Wie wir es nur Arbeit machen: die Reihenfolge eingehalten werden muss, drücken Sie nicht die Variable bis

Wir können nicht. Ihre Variable wird initialisiert nach Sie lesen ihren Wert. Es gibt kein Entkommen vor dieser albernen Anforderung. Du kannst es nicht funktionieren lassen.

Das Definieren einer Funktion vor oder nach dem Aufruf macht keinen Unterschied in PHP. Wenn Sie die Funktion jedoch dazu auffordern, nicht initialisierte Werte wie erwartet zu retournieren, ist das so, als ob Sie sie lesen würden.

jedoch

Sie etwas Hilfe von OOP nehmen, da diese nicht unter die strengen fällt nicht Politik

<?php 

$test=new CTitle(); 

class CTitle{ 
public static $title = 'Ben'; 
public function CTitle(){ 
    echo 'I am: '.self::$title; 
} 
} 

Fiddle

+1

[* Oder ... *] (http://stackoverflow.com/questions/36578665/how-to-get-the-variable-inside#comment60756407_36578665) –

+0

Ja, das ist wahr, aber das OP sagte * schiebe die Variable nicht hoch * was diese Route blockiert –

+0

Wie du gesagt hast: * kann nicht gemacht werden * ;-) keine Ahnung, warum sie das nicht ändern können. –

0

Im Rahmen einer HTML-Struktur, wie Sie Ihren Kommentar früher:

Nein hanky, du hast deinen $ title von der Klasse gesammelt, was nicht die Idee ist, bringe sie also nach draußen: $ test = new CTitle(); public static $ title = 'Ben'; Klasse CTitle {öffentliche Funktion CTitle() {echo 'Ich bin: ' .self :: $ title; }}

<?php 
$title = 'Ben'; 

function CTitle(){ 
    global $title; 
    echo 'I am: '.$title; 
} 
?> 
<html> 
    <head><title><?php CTitle(); ?></title></head> 
    <body> 
     <?php CTitle(); ?> 
    </body> 
</html> 
+0

nicht anders als was [mein ursprünglicher Kommentar] (http://stackoverflow.com/questions/36578665/how-to-get-the-variable-inside#comment60756407_36578665) sagte und fügte meine Antwort nachträglich hinzu, wo ich das hinzufügen könnte OP akzeptiert (soweit). Alles was du getan hast, war ihren Code zu nehmen und ihn dort einzubauen. –

Verwandte Themen