2016-09-10 3 views
0

내 프로그래밍 레벨이 때문에 설명의 유형 '바보 코딩'하는 것은 좋은 것입니다 상당히 초등학교있는 기능 (PHP) 내에서 인식되지 내 전역 변수는 ...

나는 다음과 같은 코드를 가지고 :

<?php 

$host = 'localhost'; 
$user = 'user'; 
$password = 'password'; 
$db_name = 'db_name'; 
$connect = mysqli_connect($host, $user, $password); 

mysqli_select_db($connect, $db_name) or die ("Couldn't connect"); 

function roll_die() { 

    $throw = rand(1, 6); 
    return $throw; 
} 

function get_subtotal() { 

    $query = "SELECT * FROM throws"; 
    $result = mysqli_query($connect, $query); 

    while ($row = $result->fetch_assoc()) { 
     echo $row['value']."<br>"; 
    } 
} 

?> 

함수 subtotal()의 '$ connect'가 분명히 정의되지 않았기 때문에 오류가 발생합니다. 페이지 상단에 정의 된 경우 어떻게 될 수 있습니까? 그것은 그것이 세계적인 기능을하도록하지 않겠습니까?

이 문제를 해결하기위한 올바른 코드를 제공하지 마십시오. PHP가 어떻게 정의하고 변수를 저장하는지에 대해 설명해 주시겠습니까?

감사합니다.

+1

전역 기능을 사용해서는 안됩니다. 코드베이스가 커짐에 따라 추적하기가 어렵고 응용 프로그램에서 이상하고 짜증나는 버그를 일으킬 수 있습니다. 대신 클래스와 함수에 변수'function get_subtotal ($ connection) {'을 삽입하십시오. –

+0

조언 주셔서 감사합니다, 마틴. 나는 더 나은 실천을 도입하기 시작할 것이다. – user122374

답변

0

좋아, 대답을 찾았습니다. 페이지 상단에서

:

$ =로 mysql_connect ($ 호스트, $ 사용자, $ 암호)를 연결;

다음 함수 내에서 :

global $ connect;

실제로, 나는 본질적으로 같은 것을 요구하고있는 다른 질문에서 대답을 발견했다. 그래서 그 재 게시에 사과한다.

+0

이 경우 질문을 삭제할 가치가 있습니다. –

관련 문제