2012-02-18 13 views
5

ठीक है, तो मैं एक php प्रवेश प्रणाली एक आसान तरीका बनाने और चाहता था एक समारोह को फोन करके लॉगआउट पेज के लिए लिंक प्राप्त करने के लिए, लेकिन यह 0. लौटने रहता हूँ वह मेरा समारोह है:php फ़ंक्शन 0 लौट रहा है?

function logout_link() { 
include("auth_vars.php"); //This file contains $auth_path_login 
return $auth_path_login+"?status=loggedout";} 

और यह कैसे है मैं इसे उपयोग कर रहा हूँ:

<a href="<?php echo logout_link();?>">logout</a> 

हालांकि यह उत्पादन रखता है:

<a href="0">logout</a> 

गलत क्या चल रहा है?

+0

क्या * बिल्कुल * 'शामिल auth_vars.php' करता है? – Quentin

+7

PHP में तारों को संयोजित करने के लिए '.' का उपयोग करें,' + ' –

+0

auth_vars.php को देखे बिना और कुछ नहीं कह सकता है, लेकिन ऐसा लगता है कि उस फ़ाइल में कुछ ऐसा हो सकता है। फ़ाइल को फ़ाइल के शीर्ष पर ले जाने का प्रयास करें समारोह के अंदर की बजाय। संपादित करें: @ पेक्का सही है, यह आपकी समस्या है। –

उत्तर

17

स्ट्रिंग संयोजन के लिए ऑपरेटर ., नहीं + है।

देखें http://www.php.net/manual/en/language.operators.string.php

+0

बदल रहा है। करने के लिए + काम किया, धन्यवाद – luke

+0

यह एक आम गलती है; कभी-कभी जब भी मैं जावा से PHP पर स्विच करता हूं तब भी मेरे साथ होता है। –

5

आपका PHP कोड सही नहीं है। यह होना चाहिए:

function logout_link() { 
include("auth_vars.php"); //This file contains $auth_path_login 
return $auth_path_login."?status=loggedout"; 
} 
+1

@ ल्यूक: "।" नोट करें "+" के बजाय। अंकगणितीय ऑपरेटर "+" logout_link() को एक संख्यात्मक फ़ंक्शन में बदल देता है ... जो परिणाम "0" देता है। – paulsm4

7

पीएचपी . में संयोजन ऑपरेटर है और + या तो इसके अलावा, या ऑपरेटर सरणियों मर्ज करने के लिए है। क्योंकि आप सरल (नहीं सरणियों) प्रकार के साथ + गठबंधन पीएचपी दोनों मूल्यों एक अंकीय मान के लिए नीचे-डाले। आपके मामले में यह 0+0

6

PHP . का उपयोग स्ट्रिंग को जोड़ने के लिए + पर करता है।

बजाय इस प्रयास करें:

function logout_link() { 
    include("auth_vars.php"); //This file contains $auth_path_login 
    return $auth_path_login . "?status=loggedout"; 
} 
3

आप का मतलब:

return $auth_path_login."?status=loggedout"; 

संयोजन ऑपरेटर PHP में . है।

संबंधित मुद्दे