2015-01-20 3 views
-1

OOP PHP를 배우면서이 글을 작성했습니다. 변수의 값을 함수에 전달하는 데 몇 가지 문제가있었습니다. 함수가 변수의 값을 읽지는 않는다는 것이 밝혀졌습니다. 아래를 참조하여 조언하십시오. 이에PHP 함수가 변수 값을 가져 오지 않습니다

public function complete() { 

    return $num1 * $num2; 

} 

(당신은 클래스 속성과되지 않은 변수에 액세스 $this으로)

:

<?php 


class calculator { 

    private $num1 = '1'; 
    private $num2 = '2'; 

    public function complete() { 

     return $num1 * $num2; 

    } 

} 

$calc = new calculator(); 
$result = $calc->complete(); 

echo $result; 
+0

숫자를 생성자에 전달하십시오. 'public function __construct ($ num1, $ num2) {$ this-> num1 = $ num1; $ this-> num2 = $ num2; }'귀하의 계산기에 더 좋을 것입니다. – Daan

답변

0
public function complete() { 

    return $num1 * $num2; 

} 

없다. 변수 $num1 또는 $num2이이 함수에서 생성되었습니다. 물론 "변수 값을 읽지 않습니다".

당신이 아마 할 수 있습니다 :

public function complete() { 

    return $this->num1 * $this->num2; 

} 

당신은 PHP 설명서의 장에 대한 classes and objects을 읽을 수 있나요?

5

당신은이 위치를 변경해야

public function complete() { 

    return $this->num1 * $this->num2; 
     //^^^^^ See here^^^^^ 

} 
+3

그냥 부수적으로 - 이것은 또한 함수를 명시 적으로 호출하는 방법이기도합니다. 수업 내 모든 것에 $ this-> 사용 – Duenna

+0

고맙습니다. 그게 해결 :) 나는 정말 해결책을 찾기 위해 노력하고 있었고 문제를 이해할 수 없었다. –

+0

@ JaySilva 개인적으로 나는이 문제에 대해 설명하고 먼저 제출 했으므로 잘못된 대답을 수락했다고 생각합니다. 그건 전적으로 당신의 선택이지만, 그것은 단지 사물의 원리입니다 ;-) –

관련 문제