나는 Todo 클래스와 인스턴스를 만들었다. 할일이 생성되고 어레이에 추가됩니다.
$allTodos = array();
class Todo {
public $todo;
}
$newTodo = new Todo();
$newTodo->todo = "Tidy room";
array_push($allTodos, $newTodo);
var_dump($allTodos);
그러나 코드를 함수에 넣으려고 할 때 깨지는 것처럼 보입니다.
$allTodos = array();
class Todo {
public $todo;
}
function createTodo() {
$newTodo = new Todo();
$newTodo->todo = "Tidy room";
array_push($allTodos, $newTodo);
}
createTodo();
var_dump($allTodos);
나는 calledPHP 경고 : array_push ()는 매개 변수 1이 배열이 될 것으로 예상하고 /home/runner/main.php에 null이 19 줄에 주어졌습니다. array (0) {
나는 PHP를 배우고 있지만 내 배경은 JavaScript이므로 PHP가 JS처럼 작동하지 않는 방식으로 동작 할 것으로 예상하는지 확실하지 않습니까?
때문에 createTodo()
'볼'수 없습니다 $allTodos
. 다음 global
명령을 통해 사용할 수 있도록해야합니다 .
function createTodo() {
global $allTodos; //<-- this
$newTodo = new Todo();
$newTodo->todo = "Tidy room";
array_push($allTodos, $newTodo);
}
즉, 변수 전역 화는 여러 가지 이유로 PHP에서 눈살을 찌푸립니다. 또는 참조로 함수에 전달할 수 있습니다.
function createTodo(&$arr) { //<-- & denotes by reference, not value
$newTodo = new Todo();
$newTodo->todo = "Tidy room";
array_push($arr, $newTodo);
}
createTodo($allTodos);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다