-1
A
답변
4
그럼 다른 하나는 변수를 사용하고 다른 하나는 그렇지 않습니다. 이 경우 치명적인 오류가 발생합니다.
class test {
public function __construct(&$a)
{
}
}
$a = true;
new test($a);
new test(true); //Fatal error because this cannot be passed by reference
1
엄밀히 말하면 테스트가 정의되는 방식에 따라 다릅니다. true
리터럴 값이므로
test
경우, 이러한 입력 파라미터를 passed by reference 것을 다음 2
치명적인 오류를 발생 것이 정의된다.
또한 test
에는 줄의 실행 순서가 중요하다는 의미의 부작용이있을 수 있습니다. 1
및 2
이 중요합니다.
1
test
클래스의 생성자에 따라 다릅니다. 일반 패스 별 값 생성자에서 그들은 정확히 동일 예상대로
class test {
public $b;
function __construct($a) { $this->b = $a; }
}
, $obj->b
은 모두 당신의 문에 대한 true
될 것입니다.
passing by reference 인 경우 나중에 글로벌 $a
을 변경하면 다른 결과가 발생할 수 있습니다. 예 :
class test {
public $b;
function __construct(&$a) { $this->b = &$a; }
}
$a = true;
$obj = new test($a);
$a = false;
$obj->b
는 $a
대한 참조이기 때문에,이 경우 false
될 것이다! 참고로, 당신은 또한 생성자 내에서 $a
을 변경, 주위에 그것을 다른 방법을 수행 할 수 있습니다
class test {
function __construct(&$a) { $a = false; }
}
$a = true;
$obj = new test($a);
$a
또한 리터럴 값에 대한 참조를 가질 수 없기 때문에 new test(true)
을 참조로 전달할 수 없습니다. 다른 변수에 대해서만 참조 할 수 있습니다.
관련 문제
- 1. "/\((./)\)/"및 "/ \ (([^ \)] *) \) /"사이에 차이점이 있습니까?
- 2. 두 문장 사이에 차이점이 있습니까?
- 3. cpython과 파이썬 사이에 차이점이 있습니까
- 4. 두 선언 사이에 차이점이 있습니까?
- 5. GLubyte와 GL_UNSIGNED_BYTE 사이에 차이점이 있습니까?
- 6. System.Windows.Clipboard와 System.Windows.Forms.Clipboard 사이에 차이점이 있습니까?
- 7. window.localStorage와 localStorage 사이에 차이점이 있습니까?
- 8. self.current_user와 @current_user 사이에 차이점이 있습니까?
- 9. 은 iframe은 그들 사이에 통신
- 10. SeriesCollection.Add()와 SeriesCollection.NewSeries() 사이에 미묘한 차이점이 있습니까?
- 11. innodb와 XtraDB 사이에 눈에 띄는 차이점이 있습니까?
- 12. XSD : Pattern과 C# Regex 사이에 차이점이 있습니까?
- 13. iPhone4의 흑백 색상 사이에 기능상의 차이점이 있습니까?
- 14. ** copy **와 ** addAll ** 사이에 차이점이 있습니까?
- 15. DISTINCT colname과 DISTINCT (colname) 사이에 차이점이 있습니까?
- 16. Android 차이점이 System.setProperty와 getSharedPreferences 사이에 있습니까?
- 17. Spring과 Spring.net 사이에 어떤 차이점이 있습니까?
- 18. 쿼리와 관련된 두 질문 사이에 차이점이 있습니까?
- 19. sqlite에서 .quit와 .exit 사이에 차이점이 있습니까?
- 20. s ++와 * s ++ 사이에 차이점이 있습니까?
- 21. on_exit() 함수와 atexit() 함수 사이에 차이점이 있습니까?
- 22. ANSI C와 ISO C 사이에 차이점이 있습니까?
- 23. 4.2와 4.3 사이에 UIImageView의 차이점이 있습니까?
- 24. .NET에서 System.Runtime.InteropServices.UCOM * 클래스와 System.Runtime.InteropServices.ComTypes. * 사이에 차이점이 있습니까?
- 25. 이 두 SELECT 문 사이에 차이점이 있습니까?
- 26. svn 복사본과 svn 분기 사이에 차이점이 있습니까?
- 27. $ (e.currentTarget)과 $ (this) 사이에 차이점이 있습니까?
- 28. get 연산자와 defineProperty 사이에 효과적인 차이점이 있습니까?
- 29. 은/mnt/sdcard와/sdcard 사이에 차이점이 있습니까?
- 30. 은 Datetime.civil과 Datetime.new 사이에 루비의 차이점이 있습니까?
와우 왜이게 downvoted 나를 넘어 ... ... ( –
SiGanteng, 동의합니다. 설명과 함께 좋을 것입니다. –