1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [제 8 - 더 편안한] 2 00:00:02,610 --> 00:00:04,910 [롭 보덴 - 하버드 대학교 (Harvard University)] 3 00:00:04,910 --> 00:00:07,070 [이 CS50입니다. - CS50.TV] 4 00:00:11,520 --> 00:00:14,160 >> 이 주 섹션 노트는 매우 짧은 될거야 5 00:00:14,160 --> 00:00:19,070 난 그냥 계속 얘기 할거야, 니 얘들 아, 질문을 계속하실 작정 이오 6 00:00:19,070 --> 00:00:22,720 우리는 가능한 한 많은 시간을 채우기 위해 노력 할게요. 7 00:00:22,720 --> 00:00:31,950 많은 사람들이 pset이 반드시 어렵지 않습니다 생각하지만, 매우 긴입니다. 8 00:00:31,950 --> 00:00:37,070 pset 사양 자체가 시간이 읽을 소요됩니다. 9 00:00:40,530 --> 00:00:45,730 우리는 당신에게 당신이 가능하게 사용해야 할 수있는 SQL을 많이 제공합니다. 10 00:00:45,730 --> 00:00:50,520 우리는 많은 거쳐 때문에 너무 나쁜해서는 안됩니다. 11 00:00:50,520 --> 00:00:54,560 사람이 시작 또는 완료? 12 00:00:55,380 --> 00:00:59,710 이게 마지막 pset입니다. 오, 맙소사. 13 00:00:59,710 --> 00:01:05,400 보통 일정 변경 일들이,이 후 자바 스크립트 하나이지만, 14 00:01:05,400 --> 00:01:09,560 일주 짧은 모든 수 있습니다, 우리는 더 이상 자바 스크립트 pset가 없습니다. 15 00:01:09,560 --> 00:01:12,310 그게 자바 스크립트 시험에 나타납니다 것입니다 여부에 영향을 미칩니다 어떻게하는지 몰라 16 00:01:12,310 --> 00:01:15,510 또는 1 퀴즈. 17 00:01:15,510 --> 00:01:22,260 당신이 자바 스크립트에 대해 높은 수준의 물건을 알고 있어야 것처럼, 뭔가 될 것입니다 상상 18 00:01:22,260 --> 00:01:26,460 하지만 우리가 당신에게 직접 자바 스크립트 코드를 제공 할 의심 19 00:01:26,460 --> 00:01:28,720 당신은에 pset가 없었 때문입니다. 20 00:01:28,720 --> 00:01:33,000 하지만 그건 다음 주 퀴즈 검토 걸 수 있습니다. 21 00:01:33,000 --> 00:01:36,320 >> 질문 섹션을 참조하십시오. 22 00:01:36,320 --> 00:01:43,870 이 물건의 많은 다소 저조한 worded이지만, 우리는 이유를 설명합니다. 23 00:01:43,870 --> 00:01:50,220 C와 달리, PHP는 "동적 타이핑"언어입니다. 이 란 뜻이 뭔가 물어? 24 00:01:50,220 --> 00:01:53,830 음, 그 문자, 무개차, INT, 기타 모든 키워드에 작별 인사 당신은 사용할 필요가 25 00:01:53,830 --> 00:01:56,190 변수와 C. 함수를 선언 할 때 26 00:01:56,190 --> 00:02:00,420 PHP에서 변수의 유형이 현재 쥐고있는 값에 의해 결정됩니다. 27 00:02:00,420 --> 00:02:04,990 우리는 dynamic.php라는 파일에이 코드를 입력 전에는 28 00:02:04,990 --> 00:02:12,670 PHP는 동적으로 입력됩니다. 그건 사실입니다. 29 00:02:12,670 --> 00:02:17,590 내 말은, 그 우리가 INT, 숯불, 떠 작별 인사하는 것을 의미한다는 사실에 동의 30 00:02:17,590 --> 00:02:20,620 및 기타 키워드입니다. 31 00:02:20,620 --> 00:02:25,510 동적으로 입력과 대안 사이의 정확한 차이, 32 00:02:25,510 --> 00:02:32,010 정적으로 입력되는 그는 동적으로 입력하여 유형 검사 및 물건들 33 00:02:32,010 --> 00:02:37,350 , 런타임에 발생 정적으로 입력 반면,이 컴파일 시간에 발생합니다. 34 00:02:37,350 --> 00:02:43,030 일반적으로 정적 단어는 컴파일 시간을 의미 보인다. 35 00:02:43,030 --> 00:02:48,170 나는에 대한 다른 용도가 생각하지만 정적 변수를 선언 C에서 36 00:02:48,170 --> 00:02:52,650 의 저장 용량은 컴파일시에 할당됩니다. 37 00:02:52,650 --> 00:02:59,260 여기 동적으로 입력 단을 의미합니다 - 38 00:02:59,260 --> 00:03:04,350 C에서, 당신이 그것을 컴파일 할 때 문자열과 정수를 추가하려고하면 39 00:03:04,350 --> 00:03:11,000 그것은 당신이 정수와 포인터를 추가 할 수 없습니다 말 것 때문에 불평거야. 40 00:03:11,000 --> 00:03:14,710 단지 유효한 작업이 아닙니다. 41 00:03:14,710 --> 00:03:21,170 우리가 두 번째로에 도착한다고 다른 것입니다. 42 00:03:21,170 --> 00:03:24,860 그러나 검사의 종류,이 컴파일 시간에 불만 있다는 사실, 43 00:03:24,860 --> 00:03:29,220 정적 유형 검사입니다. 44 00:03:29,220 --> 00:03:35,220 당신은 문자, 무개차, int는 말을 할 필요가 없습니다 언어, 그 모든 일이 있습니다 45 00:03:35,220 --> 00:03:40,940 하지만 언어는, 그것이 있어야 할 어떤 종류의 일의 맥락에서 알 수 46 00:03:40,940 --> 00:03:43,980 하지만 여전히 정적으로 입력있어. 47 00:03:43,980 --> 00:03:49,000 당신은 51, OCaml을한다면, 당신은 이러한 유형 중 하나를 사용 할 필요가 없습니다 48 00:03:49,000 --> 00:03:58,700 하지만 여전히 컴파일 시간에 당신이 정수와 문자열을 혼합하기 때문에이 작업을 수행 할 수 없습니다 말할 것입니다. 49 00:03:58,700 --> 00:04:05,650 동적 입력은 언젠가는 실행 시간 동안 당신이 불만을 얻을 수 있다는 것을 의미합니다. 50 00:04:05,650 --> 00:04:13,430 당신은 또한 일반적으로 이전에 자바를 사용한 적이 있다면, 거의 모든 C 형 언어 51 00:04:13,430 --> 00:04:20,070 정적 때문에 C, C + +, 자바, 그 모두가 일반적으로 정적으로 입력되며, 입력 할 예정이다. 52 00:04:20,070 --> 00:04:22,910 자바에서 당신이 뭔가를 컴파일하고 말 할 때 53 00:04:22,910 --> 00:04:26,670 문자열 S는 문자열이 아닌 뭔가 새로운 것을 동일 54 00:04:26,670 --> 00:04:28,950 그게 그 유형이 방금 일치하지 않기 때문에 불평거야. 55 00:04:28,950 --> 00:04:31,180 그래서 컴파일 시간에 불평을거야. 56 00:04:31,180 --> 00:04:36,750 당신이 뭔가를 캐스팅하려한다면 그것은 또한 물건이 좋아하는 동적 시간이 57 00:04:36,750 --> 00:04:40,500 현재 유형보다 구체적인입니다 유형, 58 00:04:40,500 --> 00:04:45,610 그렇게 캐스트가 성공 것입니다 여부를 확인 컴파일 시간에 할 수있는 건 아무것도 없습니다. 59 00:04:45,610 --> 00:04:51,130 자바는 또한 확인 동적 유형이 그 코드의 라인으로 데려다 줄 60 00:04:51,130 --> 00:04:54,130 실제로 실행을하면, 그것은, 캐스트를 할거야 61 00:04:54,130 --> 00:04:56,260 그 팔로는 처음에 유효하면 확인 62 00:04:56,260 --> 00:04:59,890 그리고이 아니 었어요 경우, 당신이 잘못된 형식을 가지고 불평거야. 63 00:04:59,890 --> 00:05:03,200 동적 유형 검사. 64 00:05:03,200 --> 00:05:07,010 dynamic.php라는 파일에 입력. 65 00:05:10,130 --> 00:05:12,380 Dynamic.php. 66 00:05:14,580 --> 00:05:17,190 난 그 형식을 압축을 풉니됩니다. 67 00:05:18,750 --> 00:05:21,880 우리는 우리가 정수 7을 설정 변수가 68 00:05:21,880 --> 00:05:27,930 그런 다음 그걸 % s을 (를) 인쇄 할거야 - 69 00:05:27,930 --> 00:05:32,830 아, 우리는 그것의 유형을 인쇄하고 있으므로 gettype는 변수의 유형을 반환하는 것이다. 70 00:05:32,830 --> 00:05:35,720 우리는 계속해서 유형을 인쇄하고 있습니다. 71 00:05:35,720 --> 00:05:39,440 우리는 php.dynamic.php. 72 00:05:39,440 --> 00:05:45,920 이 부분에 대해서는 정수의 논리 값으로 문자열에 그 변경 사항을 우리가 통과. 73 00:05:45,920 --> 00:05:54,590 C에 부울 데이터 형식이없는, 아무 문자열 데이터 형식이 없습니다. 74 00:05:54,590 --> 00:06:00,500 이 숯불 *군요 부울는 정수 나 문자 나 다른 누군가가 되길 경향이있다. 75 00:06:00,500 --> 00:06:05,690 PHP에서 이러한 유형의 존재, 그리고 그 C 이상의 PHP의 가장 큰 장점 중 하나 - 76 00:06:05,690 --> 00:06:13,290 문자열 작업은 그들은 단지 동작 C.보다 PHP의 무한 쉽게 것을. 77 00:06:13,290 --> 00:06:18,290 >> 그래서 우리는 돌아와. 78 00:06:18,290 --> 00:06:21,260 우리는 dynamic.php를 실행. 79 00:06:21,260 --> 00:06:26,710 이 dynamic.php에 PHP 코드를 실행하는 PHP라는 PHP 인터프리터를, 알려줍니다. 80 00:06:26,710 --> 00:06:30,250 이 파일에 오류가있는 경우, 통역사을 말해 줄 것이다 81 00:06:30,250 --> 00:06:39,110 통역,이 PHP와 C 사이의 또 다른 큰 차이입니다 82 00:06:39,110 --> 00:06:48,200 C에서 당신은 무언가를 컴파일 한 다음 해당 컴파일 파일을 실행해야합니다. 83 00:06:48,200 --> 00:06:50,490 PHP에서 당신은 아무것도 컴파일하지 마십시오. 84 00:06:50,490 --> 00:06:57,200 따라서 PHP 인터프리터는 기본적으로 단지 선으로이 줄을 읽을 수 있습니다. 85 00:06:57,200 --> 00:07:02,900 이 VAR은 = 7 다음이 그것이 printf 등 친 후 VAR에 도달 printf 후 조회 공격합니다. 86 00:07:02,900 --> 00:07:10,910 이 그러길 컴파일 비트이며, 그 결과를 캐시에 저장 87 00:07:10,910 --> 00:07:15,510 이 스크립트를 실행하는 경우 때문에 나중에는 일부를 수행 할 수 88 00:07:15,510 --> 00:07:19,280 하지만 기본적으로이 일을 행 정렬 선입니다. 89 00:07:19,280 --> 00:07:25,280 그래서 우리가 C에 있지 최적화 많은 의미 90 00:07:25,280 --> 00:07:31,920 컴파일처럼,이 컴파일러가 당신을 위해 많은 트릭을 할 수 있습니다 만 일반적입니다. 91 00:07:31,920 --> 00:07:36,110 그것은 사용하지 않는 변수를 꺼낼 수는, 일 이러한 종류의 모든 작업을 수행 할 수 92 00:07:36,110 --> 00:07:38,660 그것은 꼬리 재귀 작업을 수행 할 수 있습니다. 93 00:07:38,660 --> 00:07:42,550 PHP에서 그 이점을 얻을 수 없어 94 00:07:42,550 --> 00:07:45,690 그냥 선으로 선으로 줄을 실행부터 시작하기 때문에하면, 95 00:07:45,690 --> 00:07:49,950 와 정말 쉽게 이런 일을 인식하지 못합니다 96 00:07:49,950 --> 00:07:54,440 가 1 큰 컴파일 것은 이상 패스하고 실행은 아니니까, 97 00:07:54,440 --> 00:07:56,860 이 선으로 만 선입니다. 98 00:08:00,730 --> 00:08:02,750 그래서 결국 통역사입니다. 99 00:08:02,750 --> 00:08:06,840 >> 우리의 동적 타이핑로 돌아 가기 : 정말 멋진, 응? 100 00:08:06,840 --> 00:08:08,640 당신은 확실히 C에서 해당 작업을 수행 할 수 없습니다! 101 00:08:08,640 --> 00:08:11,860 다음과 같은 값이 각각의 유형을 알아낼 수 있다면 참조하십시오. 102 00:08:11,860 --> 00:08:14,760 참고이를 참조하십시오. 103 00:08:14,760 --> 00:08:19,420 3.50 그럼. 당신은 할 거에요 어떤 종류의 생각은 어때? 104 00:08:24,480 --> 00:08:26,370 여기에 우리가 가지고있는 유형입니다. 105 00:08:26,370 --> 00:08:30,430 우리는 bools, 정수, 부동 점, 문자열, 배열, 객체 있습니다 106 00:08:30,430 --> 00:08:38,370 그리고 모호 어떤 종류의 자원된다. 107 00:08:38,370 --> 00:08:41,010 나는 예를 들어 이곳에있는 것 같아. 108 00:08:41,010 --> 00:08:43,740 그런 다음 NULL이 있어요. NULL은 특별한 유형입니다. 109 00:08:43,740 --> 00:08:47,140 NULL 방금 주소 0에 대한 포인터입니다 C는 달리, 110 00:08:47,140 --> 00:08:54,930 PHP에서 NULL은 해당 유형의 경우에만 유효 것은 NULL이 자신의 유형입니다. 111 00:08:57,560 --> 00:09:00,670 이 훨씬 더 유용한 오류 검사를위한 것입니다. 112 00:09:00,670 --> 00:09:04,310 귀하가 NULL 반환하는 경우이 문제를 가지고 C에서, 113 00:09:04,310 --> 00:09:08,660 그 말은 당신이 NULL 포인터를 반환하거나 오류를 의미하는 NULL을 사용하는 의미 114 00:09:08,660 --> 00:09:12,380 아님 우리가 시점에서 가지고있는 그 혼란의 모든. 115 00:09:12,380 --> 00:09:18,440 여기 NULL을 반환하면 일반적으로 오류를 의미합니다. 116 00:09:20,860 --> 00:09:27,300 많은 것들이 또한 오류에 대한 허위 반환합니다. 117 00:09:27,300 --> 00:09:33,140 그러나 중요한 점은 NULL 유형, NULL 타입의 유일한 NULL입니다. 118 00:09:33,140 --> 00:09:40,090 당신이 익명 함수를 정의 할 수 있습니다처럼 그런 다음 콜백입니다. 119 00:09:40,090 --> 00:09:46,420 당신은 함수 이름을 부여 할 필요가 없습니다,하지만 여기에 처리 할 필요가 없습니다. 120 00:09:46,420 --> 00:09:53,940 그들은 우리가 알고 기대하는 종류를 살펴보면, 121 00:09:53,940 --> 00:09:59,000 당신은 3.50의 종류는 어떻게 생각하세요? >> [학생] 플로트. 122 00:09:59,000 --> 00:10:00,370 그래. 123 00:10:00,370 --> 00:10:06,290 그래서 여기,이 유형은 어떻게 생각하세요? >> [학생] 배열입니다. 124 00:10:06,290 --> 00:10:09,890 그래. 첫 번째는 부동이었고, 두 번째는 배열입니다. 125 00:10:09,890 --> 00:10:14,500 이 배열은 C 배열처럼 아니라는 것을 발견 126 00:10:14,500 --> 00:10:19,610 당신이 인덱스를 가지고있는 0 어떤 값을 가지고, 색인 1 어떤 값이 있습니다. 127 00:10:19,610 --> 00:10:26,320 다음은 인덱스는 A, B 및 C이며 값은 1, 2, 3입니다. 128 00:10:26,320 --> 00:10:33,980 PHP에서 연관 배열 불과 정기적으로 배열 사이에 차이점이 없습니다 129 00:10:33,980 --> 00:10:36,740 당신은 C.에서 생각하는 것처럼 130 00:10:36,740 --> 00:10:43,040 가 이번 있으며, 후드 아래 일반 배열은 연관 배열이다 131 00:10:43,040 --> 00:10:50,000 어디에서 어떤 값을 어떤 값 0지도 같은 방법은지도를 제공합니다. 132 00:10:50,000 --> 00:11:00,410 이러한 이유로, PHP 정말 빠른 코드 / 벤치마킹 물건을 꽤 심하게 할 수 있습니다 133 00:11:00,410 --> 00:11:07,930 C에서 당신이 배열을 사용할 때부터 당신은 회원에 접속하면 일정 시간이 것을 알고있다. 134 00:11:07,930 --> 00:11:11,860 PHP는 회원을 액세스에서 얼마나 많은 시간을 알고 누구야? 135 00:11:11,860 --> 00:11:18,970 올바르게 해시하면 아마도 상수입니다. 136 00:11:18,970 --> 00:11:21,620 누가 정말 후드 아래에 무슨 짓을 아는 사람? 137 00:11:21,620 --> 00:11:25,600 당신은 정말 그렇게 처리 할지를 확인하기 위해 구현 살펴해야합니다. 138 00:11:25,600 --> 00:11:28,550 그래서 fopen. 139 00:11:28,550 --> 00:11:36,420 난 그냥 PHP 매뉴얼 fopen의 반환 형식을 살펴 보자 여기 생각합니다. 140 00:11:36,420 --> 00:11:41,260 우리는 당신이 PHP 매뉴얼에 거의 모든 기능을 찾아 볼 수 있습니다 여기를 클릭하십시오 141 00:11:41,260 --> 00:11:47,540 그리고이 PHP의 man 페이지의 일종입니다. 142 00:11:47,540 --> 00:11:51,060 반환 유형은 자원이 될 것입니다. 143 00:11:51,060 --> 00:11:56,050 내가 고개를 왜 우리가 정말 리소스를 정의하지 않았기 때문에 즉,입니다. 144 00:11:56,050 --> 00:12:04,110 자원의 아이디어는, C에서 당신은의 종류 FILE * 또는 무엇이든을받습니다; 145 00:12:04,110 --> 00:12:07,200 PHP에서 리소스 파일에 * 있습니다. 146 00:12:07,200 --> 00:12:10,360 당신이 읽는 될 것이야, 당신이에 서면 할 것거야. 147 00:12:10,360 --> 00:12:20,710 그것은 일반적으로 외부에요, 당신이에서 물건을 당겨하고 먹일 수있어 자원입니다. 148 00:12:20,710 --> 00:12:26,520 그리고 마지막으로, NULL의 유형 무엇입니까? >> [학생] NULL. 149 00:12:26,520 --> 00:12:30,650 그래. 따라서 NULL 인 유일한 NULL입니다. 150 00:12:30,650 --> 00:12:33,480 NULL은 NULL입니다. 151 00:12:35,490 --> 00:12:41,170 >> PHP의 타입 시스템 (더 나은 또는 더 나쁜 경우) 중 하나 기능은 형식을 저글링하는 기능입니다. 152 00:12:41,170 --> 00:12:44,390 당신은 다른 유형의 값을 결합하여 PHP 코드 한 줄을 작성하면, 153 00:12:44,390 --> 00:12:46,670 PHP는 합리적인 일을하려고합니다. 154 00:12:46,670 --> 00:12:48,920 PHP 코드의 다음 줄의 각을 사용해보세요. 무엇을 인쇄거야? 155 00:12:48,920 --> 00:12:51,000 당신이 기대했던 이냐? 왜, 왜 안돼? 156 00:12:51,000 --> 00:12:58,600 PHP에 대한이 사실은 우리가 약하게 입력 된 부릅니다를 만드는 것입니다. 157 00:12:58,600 --> 00:13:04,610 약하게 입력하고 강력하게 형식화 된, 158 00:13:04,610 --> 00:13:06,840 해당 조건에 대해 서로 다른 용도가있어, 159 00:13:06,840 --> 00:13:12,020 하지만 대부분의 사람들은 이런 걸 의미 약하게 입력하고 강력하게 입력을 사용하여 160 00:13:12,020 --> 00:13:15,920 곳 ( "1"+ 2), 그 작동합니다. 161 00:13:15,920 --> 00:13:18,290 C에서 그 동작하지 않을 것이다. 162 00:13:18,290 --> 00:13:22,490 당신이 작동하지 상상할 수 있습니다. 163 00:13:22,490 --> 00:13:29,200 많은 사람들이 동적 입력과 약한 입력 및 정적 타이핑 및 강력한 입력을 섞는다. 164 00:13:29,200 --> 00:13:34,050 파이썬은 동적으로 입력있어 언어의 또 다른 예입니다. 165 00:13:34,050 --> 00:13:41,770 당신은 변수의 유형을 주변에 던질 수 있으며 런타임에 결정하는거야 166 00:13:41,770 --> 00:13:44,680 오류 checkings. 167 00:13:44,680 --> 00:13:50,740 파이썬에서는이 실행하고 ( "1"+ 2)가 표시됩니다 거예요; 168 00:13:50,740 --> 00:13:55,920 당신이 문자열과 정수를 추가 할 수 없다는 때문이 실패합니다. 169 00:13:55,920 --> 00:14:00,860 마찬가지로 동적으로 입력 된 PHP에서는이 실패하지 않습니다. 170 00:14:00,860 --> 00:14:04,220 약 타이핑은 유형과 일을 수행한다는 사실과 연관이 171 00:14:04,220 --> 00:14:07,800 정말 반드시 이치에 맞지 않는. 172 00:14:07,800 --> 00:14:17,420 따라서 ( "1"+ 2), I는 문자열 12 것, 내가 문자열을 세 상상 할 수있는 상상할 수, 173 00:14:17,420 --> 00:14:20,710 나는 정수 3 상상 할 수 있습니다. 174 00:14:20,710 --> 00:14:24,530 그것은 반드시 잘 정의되지 않은, 우리는 아마 여기 만나러가는 중이 야 175 00:14:24,530 --> 00:14:29,140 우리가 인쇄 할 때 ( "1"+ 2), 아마도 다른 끝나게거야 176 00:14:29,140 --> 00:14:32,320 인쇄 이상 (1 + "2"). 177 00:14:32,320 --> 00:14:39,700 그리고이 악화에 대한 제 생각이 될 경향이있다. 178 00:14:39,700 --> 00:14:44,240 여기이를 시도 할 수 있습니다. 179 00:14:44,240 --> 00:14:48,740 PHP에 대한 또 다른 작은 속임수는 실제로 파일을 작성 할 필요가 없습니다 것입니다. 180 00:14:48,740 --> 00:14:52,790 그것은이 명령 모드를 실행 한 않습니다. 181 00:14:52,790 --> 00:14:57,710 PHP-R 그래서, 우리는 여기에 명령에 던져 수 있습니다 : 182 00:14:57,710 --> 00:15:06,610 "인쇄 ('1 '+ 2);"나는 새 줄을 던질거야. 183 00:15:19,550 --> 00:15:23,970 이 3 인쇄. 184 00:15:31,100 --> 00:15:35,330 이 3 인쇄하고 정수 3 다있는 것 같습니다. 185 00:15:35,330 --> 00:15:38,420 그래서 지금의이 다른 식으로 해보자 : 186 00:15:38,420 --> 00:15:42,970 "인쇄 (1 + '2 '); 187 00:15:45,560 --> 00:15:50,490 우리는 3를, 또한 정수 3 거에요? 솔직히 아무 생각이 없습니다. 188 00:15:50,490 --> 00:15:54,030 일관성이입니다 것 같습니다. 189 00:15:54,030 --> 00:15:59,550 이 문자열 12 이런 건가되는 가능성은이 결코 190 00:15:59,550 --> 00:16:08,080 때문에 너무 PHP, 자바 스크립트와 달리 자바, 191 00:16:08,080 --> 00:16:11,670 연결에 대한 별도의 연산자가 있습니다. 192 00:16:11,670 --> 00:16:14,930 PHP의 연결은 점입니다. 193 00:16:14,930 --> 00:16:22,950 인쇄 그래서 (1 '2 '는.); 우리에게 12 줄 예정이다. 194 00:16:25,790 --> 00:16:32,420 이 사람들은으로 str + = 같은 일을하려고 곳 혼란을 초래할 경향이 195 00:16:32,420 --> 00:16:37,840 그들이 문자열의 끝에 추가하려면, 그 실패는 게 다른 것. 196 00:16:37,840 --> 00:16:40,770 당신은으로 str 할 필요. = 197 00:16:42,000 --> 00:16:46,240 따라서 PHP의 연결은 점입니다 잊지 마세요. 198 00:16:46,240 --> 00:16:52,100 시도 할 수있는 다른 일들 ( "CS"+ 50) 인쇄; 199 00:16:55,750 --> 00:17:03,610 나는 CS50의 결과로이 희망이 없다고 얘기 했잖아요 200 00:17:03,610 --> 00:17:06,119 연결은 +하지 않습니다 때문입니다. 201 00:17:06,119 --> 00:17:08,440 당신은이 끝나게 것입니다 어떻게 생각하십니까? 202 00:17:10,359 --> 00:17:13,460 솔직히 전혀 생각이 없습니다. 203 00:17:14,250 --> 00:17:16,460 그냥 50 것 같습니다. 204 00:17:16,460 --> 00:17:21,490 이 문자열을보고, 우리는 123CS 둔 건지 내기 - 205 00:17:21,490 --> 00:17:29,640 그것은 첫 번째 문자열을보고, 그곳에서 정수 또는에서 번호를 읽을하려고합니다. 206 00:17:29,640 --> 00:17:31,710 이 경우는 123CS 본다. 207 00:17:31,710 --> 00:17:35,190 "정수로 이해가되지 않는 그, 그럼 난 그냥 123을 생각 할거야." 208 00:17:35,190 --> 00:17:38,580 123 그래서 + 50 173 될 것입니다. 209 00:17:38,580 --> 00:17:40,740 그리고 여기에는 정수로이 페이지를 읽고 시작합니다. 210 00:17:40,740 --> 00:17:45,690 그것은 아무 것도하지 않는, 그냥 그 영으로 취급하므로. 0 그래서 + 50은 50가 될 것입니다. 211 00:17:45,690 --> 00:17:51,600 제가 있으리라 믿고있어이 비슷한 일을 할거야. 212 00:17:51,600 --> 00:17:54,310 나는 99 생각하고 있어요. 213 00:17:54,310 --> 00:17:57,580 네, 먼저 데려 갈 있기 때문에 - 214 00:18:12,880 --> 00:18:15,730 99 그럼. 215 00:18:15,730 --> 00:18:21,970 이 C라면 여기 (10 / 7), 그게 무슨 반환까요? 216 00:18:23,700 --> 00:18:29,630 [학생] 1. 7분의 10 2 정수를 나누어 있기 때문에 >> 네, 1 것입니다. 217 00:18:29,630 --> 00:18:32,910 정수로 나눈 정수는 정수를 반환 예정이다. 218 00:18:32,910 --> 00:18:37,750 그것은 것 1 포인트 무엇이든을 반환 할 수 없습니다, 그래서 그냥 1을 반환하는거야. 219 00:18:37,750 --> 00:18:46,120 여기 (10 / 7) 인쇄, 실제로 것으로 해석하는거야. 220 00:18:46,120 --> 00:18:53,760 그리고 이것은 당신이 실제로 그렇게 정수 반올림 물건을 원하는 경우 221 00:18:53,760 --> 00:18:59,950 당신은 인쇄를 (층 (10 / 7)) 할 필요가; 222 00:18:59,950 --> 00:19:08,460 C에서는, 당신은 정기적으로 정수 절단에 의존 할 수있는 것 이상 해요 223 00:19:08,460 --> 00:19:12,260 하지만 PHP에서 당신은 자동으로 부동으로 돌려 할 수 없기 때문에. 224 00:19:13,430 --> 00:19:17,610 그리고 (7 + 사실), 당신은 할 거에요 어떻게 생각하세요? 225 00:19:18,550 --> 00:19:23,640 가 1로 진정한 해석하는거야 경우 8 추측거야. 226 00:19:23,640 --> 00:19:25,740 그 8 것 같은데. 227 00:19:25,740 --> 00:19:31,710 >> 우리는 당신이 절대적으로하지 않아야 지난 10 분 한 것도 그럼. 228 00:19:31,710 --> 00:19:39,870 당신은이 작업을 수행 코드를 볼 수 있습니다. 229 00:19:39,870 --> 00:19:42,700 그것은이처럼 간단 할 필요가 없습니다. 230 00:19:42,700 --> 00:19:47,240 당신은 2 개의 변수를 가질 수 있으며, 한 변수는 문자열로 발생 231 00:19:47,240 --> 00:19:51,310 와 다른 변수는 정수로 발생하고, 다음 같이이 변수를 추가 할 수 있습니다. 232 00:19:51,310 --> 00:20:00,120 PHP는 동적으로 입력되어 당신을 위해 어떤 종류의 검사를하지 않습니다 때문에 233 00:20:00,120 --> 00:20:03,640 그리고 그것은 약하게 입력있어 않았고, 그냥 자동으로 함께 먹일 때문에 234 00:20:03,640 --> 00:20:11,490 그리고 모든 것이 작동합니다, 그것은, 심지어이 변수는 현재 문자열이어야합니다 알고 어렵습니다 235 00:20:11,490 --> 00:20:14,930 그래서 정수입니다,이 변수에 추가해야합니다. 236 00:20:18,780 --> 00:20:24,560 변수가 문자열 인 경우 가장 좋은 방법은, 영원히 문자열로 보관하십시오. 237 00:20:24,560 --> 00:20:26,980 변수가 정수이면 영원히 정수로 유지. 238 00:20:26,980 --> 00:20:30,770 당신은 정수와 문자열을 처리하려면 239 00:20:30,770 --> 00:20:36,970 당신은 varsint을 사용할 수 있습니다 - 그건 자바 스크립트입니다. 240 00:20:36,970 --> 00:20:42,520 Intval. 이 모든 시간을. PHP와 자바 스크립트가 난 모든 걸 망쳐 섞는다. 241 00:20:42,520 --> 00:20:47,600 따라서 intval은 변수의 정수 값을 반환 예정이다. 242 00:20:47,600 --> 00:20:56,550 우리가 "인쇄 (intval ('123 '))에 합격 할 경우, 당신은 123를 얻을. 243 00:21:06,820 --> 00:21:15,850 Intval 자체는 독점적 정수라고 우리에있는 확인란의 선택을하지 않을 수 있습니다. 244 00:21:15,850 --> 00:21:20,460 PHP 매뉴얼, 너무 많은 기능을 사용할 수 있습니다 245 00:21:20,460 --> 00:21:26,560 그래서 여기가 내가 할 때 사용하는 첫번째 i​​s_numeric 생각합니다. 246 00:21:26,560 --> 00:21:32,590 나는 true를 반환 것 같은데요. 247 00:21:32,590 --> 00:21:35,780 우리가 === 넘어 가야 다른 일이야. 248 00:21:37,850 --> 00:21:44,020 따라서 is_numeric ('123df '), 그와 같은 is_numeric 생각 없습니다. 249 00:21:44,020 --> 00:21:46,720 C에서는 모든 문자를 통해 반복해야 250 00:21:46,720 --> 00:21:50,410 각 문자가 숫자이든 뭐든간에 있는지 확인합니다. 251 00:21:50,410 --> 00:21:53,850 여기 is_numeric, 우리를 위해 일을 할거야 252 00:21:53,850 --> 00:21:56,520 그리고 거짓 돌아오고있는중인 데요. 253 00:21:56,520 --> 00:22:02,120 그래서 그렇게 인쇄 때, 여기 내가보고 비교하고 있잖아, 아무것도 인쇄되지 254 00:22:02,120 --> 00:22:05,490 당신은 거짓으로 무슨 일 있었어? 그리고 지금은 1 인쇄있어. 255 00:22:05,490 --> 00:22:10,060 분명히 그 대신에 진실이 진실 인쇄 true로 1 인쇄합니다. 256 00:22:10,060 --> 00:22:15,790 나는 print_r을 궁금. 아니요, 아직 1 않습니다. 257 00:22:15,790 --> 00:22:26,760 >> ===으로 돌아 간다, == 여전히 존재 258 00:22:26,760 --> 00:22:32,260 그리고 토미에게 말해 준다면 그는 말 그대로 == 완벽하게 괜찮습니다. 259 00:22:32,260 --> 00:22:37,700 나는 ==이 끔찍한이고 ==를 사용하지 않는다 이렇게 말할거야. 260 00:22:37,700 --> 00:22:44,870 차이점은 == 사물을 비교하는 것입니다 261 00:22:44,870 --> 00:22:48,450 은 같은 타입이 아니야 경우에도 사실이 될 수있는, 262 00:22:48,450 --> 00:22:53,810 === 물건을 비교하고 먼저 수표는 동일한 유형 있지? 반면, 263 00:22:53,810 --> 00:22:58,010 예. 자, 이제 나는 그들이 실제로 동일 할 비교하면 볼 거예요. 264 00:22:58,010 --> 00:23:08,890 당신은 10 살 이상한 일들이 동일 해 - 그것이 알아 보자. 265 00:23:08,890 --> 00:23:15,570 따라서 ('10 '== '1 E1'); 266 00:23:15,570 --> 00:23:17,980 이 true를 반환합니다. 267 00:23:17,980 --> 00:23:21,420 사람이 true를 반환 이유를 추측이 있습니까? 268 00:23:25,180 --> 00:23:27,120 단지 그것에 대해하지 않습니다. 아마이 힌트입니다. 269 00:23:27,120 --> 00:23:33,170 하지만 F에 그렇게 변경하는 경우 - 제길! 나는 따옴표를 계속 사용. 270 00:23:33,170 --> 00:23:38,780 나는 따옴표에 넣고 한 때문에 큰 따옴표 내게 소리 치는 거예요 때문입니다. 271 00:23:38,780 --> 00:23:43,850 그래서 여기에 이​​중 따옴표를 회피 할 수 있지만, 작은 따옴표는 쉽게합니다. 272 00:23:43,850 --> 00:23:49,120 따라서 ('10 '== '1 F1'); 사실이 인쇄되지 않습니다. ('10 '== '1 E1'); 사실 인쇄합니다. 273 00:23:49,120 --> 00:23:56,330 [학생]은 진수인가? >>이 마법은 아니지만, 그것이 거라고 가까이 - 274 00:23:56,330 --> 00:24:01,060 1e1, 과학적 표기법. 275 00:24:01,060 --> 00:24:07,950 그것은 1로 1e1 인식 * 10 ^ 1 뭐든간에. 276 00:24:07,950 --> 00:24:11,510 사람들은 동일한 정수입니다. 277 00:24:11,510 --> 00:24:15,930 우리가 === 할 경우 그것을 거짓거야. 278 00:24:15,930 --> 00:24:28,490 우리가 할 경우 실제로 아무 생각이 없습니다 == 무엇 (10 '10abc ')에 대해,? 괜찮아요. 그래서 사실입니다. 279 00:24:28,490 --> 00:24:35,940 있으며, 20 것, 그래서 당신이 (10 + '10abc '을)했던 때처럼 280 00:24:35,940 --> 00:24:38,800 여기에 (10 == '10abc '); 사실입니다. 281 00:24:38,800 --> 00:24:45,350 더 나쁜 것은이 같은 일 (허위 == NULL)입니다, 사실입니다 282 00:24:45,350 --> 00:24:52,210 또는 (거짓 == 0), 사실 (거짓 == []); 283 00:24:52,210 --> 00:25:00,970 의 이상한 경우가 있습니다 - 그게 이상한 사례 중 하나입니다. 284 00:25:00,970 --> 00:25:08,110 주의는 (거짓 == []); 사실입니다. 285 00:25:08,110 --> 00:25:11,950 ('0 '== 거짓); 사실입니다. 286 00:25:11,950 --> 00:25:16,090 ('0 '== []); false입니다. 287 00:25:16,090 --> 00:25:19,090 따라서 ==가 전이 어떠한 방식으로도 있습니다. 288 00:25:19,090 --> 00:25:26,830 , a는 b와 동일 할 수 있고는 C와 동일 할 수 289 00:25:26,830 --> 00:25:29,340 하지만 B는 C와 일치하지 않을 수 있습니다. 290 00:25:29,340 --> 00:25:35,580 저 한테는 실패작이고, 당신은 항상 ===를 사용하는 것이 좋습니다. 291 00:25:35,580 --> 00:25:38,590 [학생] 우리는 할 수 있어요! ==뿐만 아니라? >> [보덴] 예. 292 00:25:38,590 --> 00:25:44,600 이에 상응하는 것! = 및! ==. 293 00:25:44,600 --> 00:25:48,230 이것은 실제로 pset 사양에 데려갑니다 294 00:25:48,230 --> 00:25:52,000 곳 함수 반환 많은 - 295 00:25:52,000 --> 00:25:53,890 PHP 매뉴얼이에 대한 좋은 것입니다. 296 00:25:53,890 --> 00:25:59,140 그것은 "오류가있을 경우이 false를 반환합니다."큰 빨간색 상자에 넣어 297 00:25:59,140 --> 00:26:03,940 그러나 반환 0 돌아가 완벽하게 합리적인 것입니다. 298 00:26:03,940 --> 00:26:08,250 정수를 반환 할 것으로 예상되는 기능에 대해 생각해보십시오. 299 00:26:11,250 --> 00:26:17,880 자,이 기능은 파일이나 뭔가를 줄 수를 계산 거라 더군. 300 00:26:17,880 --> 00:26:23,490 정상적인 상황에서는, 당신은이 기능이에게 파일을 전달 301 00:26:23,490 --> 00:26:27,120 그리고 라인의 수를 나타냅니다 정수를 반환하는거야. 302 00:26:27,120 --> 00:26:30,820 파일이 단지 비어있는 경우 그럼 0 완벽하게 합리적인 숫자입니다. 303 00:26:30,820 --> 00:26:36,810 당신은 그것을 잘못된 파일을 통과하고 있다면이 함수는 FALSE를 반환하려면 어떻게 발생 304 00:26:36,810 --> 00:26:38,860 당신은 그것을 잘못된 파일을 통과하면? 305 00:26:38,860 --> 00:26:46,500 방금 할 경우 ==이 잘못 파일 및 빈 파일 사이의 사건을 구별하지. 306 00:26:48,870 --> 00:26:51,350 항상 ===를 사용합니다. 307 00:26:55,690 --> 00:26:58,000 이 사람이 전부에요. 308 00:26:58,000 --> 00:27:01,660 >> PHP에서 배열 타입은 당신이 C.에에 사용하는 것과 다른 309 00:27:01,660 --> 00:27:06,650 이 입력 배열의 것을봤을 때 실제로, 당신은 이미이 이상 발견했을 수 있습니다. 310 00:27:06,650 --> 00:27:15,640 브라켓 구문은 PHP의 최신 버전입니다 PHP 5.4의 같은 새로운입니다. 311 00:27:15,640 --> 00:27:36,960 > 1, 'B'- -> 2이 전에 항상 ( ''배열을 작성했습니다. 312 00:27:36,960 --> 00:27:41,160 그 배열의 생성자했습니다. 313 00:27:41,160 --> 00:27:45,950 지금 PHP 결국, 단지 대괄호의 좋은 구문에 돌아왔다 314 00:27:45,950 --> 00:27:50,900 이는 배열보다 훨씬 낫다. 315 00:27:50,900 --> 00:27:54,480 그러나 PHP 5.4을 고려하면, 최신 버전입니다 316 00:27:54,480 --> 00:27:59,090 당신은 심지어 PHP 5.3이없는 장소가 발생할 수 있습니다. 317 00:27:59,090 --> 00:28:08,220 PHP 5.3 우리가 어플라이언스에했던 일이있는 곳, 여름 동안 우리는이 문제를 우연히 만났어 318 00:28:08,220 --> 00:28:14,480 하지만 우리는 모든 학년 도서를 배포하여 제출하고 모든 물질에있는 서버 319 00:28:14,480 --> 00:28:16,750 PHP 5.4이었다. 320 00:28:16,750 --> 00:28:23,060 이 사실을 모르는, 우리는 5.3에서 개발, 5.4에 적용 321 00:28:23,060 --> 00:28:25,660 지금 우리 코드의 갑작스런 없음의 작동 322 00:28:25,660 --> 00:28:28,680 5.3과 5.4 사이의 변화가 있었던 일 이거든 323 00:28:28,680 --> 00:28:31,030 하위 호환되지 않습니다있는 324 00:28:31,030 --> 00:28:35,770 우리는 가서 PHP 5.4이 작동하지 않는 우리 물건의 모든 문제를 해결해야합니다. 325 00:28:39,210 --> 00:28:42,320 어플라이언스는 않기 때문에이 클래스의 경우, PHP 5.4 있습니다 326 00:28:42,320 --> 00:28:45,490 그것은 대괄호를 사용하는 완벽하게 괜찮아요. 327 00:28:47,240 --> 00:28:50,440 하지만 당신이 인터넷에 물건을 찾고 있다면, 328 00:28:50,440 --> 00:28:54,880 당신은 배열의 물건 일종의을 찾고 있다면, 가능성이 가장 높은 당신은 날씬하고, 예쁘고, 329 00:28:54,880 --> 00:29:02,020 PHP 년부터 주변에 있었 그 이후 배열 생성자 구문에서 주술이 태어났다 330 00:29:02,020 --> 00:29:07,340 와 대괄호 구문은 지난 몇 개월 동안 주변되었습니다 331 00:29:07,340 --> 00:29:10,020 또는 때마다 5.4 주변왔​​다. 332 00:29:10,020 --> 00:29:12,710 이 어떻게 색인입니다. 333 00:29:12,710 --> 00:29:30,610 그냥 C에서와 마찬가지로 당신이 어떻게 $ 배열 [0], $ 배열 [1], $ 배열 [2], 같은 대괄호로 인덱스 겠어 334 00:29:30,610 --> 00:29:36,320 색인을 생성하면 인덱스가 문자열되는 할 일이 경우 같은 방법으로합니다. 335 00:29:36,320 --> 00:29:40,440 그럼 $ 배열 [ '']와 $ 배열 [ 'B']. 336 00:29:40,440 --> 00:29:47,410 $ 배열 [B]. 왜 잘못된 일일까요? 337 00:29:52,490 --> 00:29:59,870 아마도 경고를 생성하지만 여전히 작동합니다. PHP는 그런 짓을하는 경향이있다. 338 00:29:59,870 --> 00:30:04,890 단지, "나는이 경고거야 경향, 난 그냥 계속 올라갈거야 339 00:30:04,890 --> 00:30:07,550 "하고 내가 할 수있는 모든 일을한다." 340 00:30:07,550 --> 00:30:11,500 아마, 문자열이 번역합니다 341 00:30:11,500 --> 00:30:15,000 하지만 과거 누군가의 어떤 시점에서 말했다 수 있습니다 342 00:30:15,000 --> 00:30:20,180 'HELLO WORLD'로 B를 정의합니다. 343 00:30:20,180 --> 00:30:28,740 이제 B는 상수와 $ 배열 될 수 [B]는 실제로 '안녕하세요'하고있을 것입니다. 344 00:30:28,740 --> 00:30:32,380 나는이 시점에서 생각하거나, 적어도 우리 PHP 설정 345 00:30:32,380 --> 00:30:37,870 당신이 배열에 색인을 생성하려고하고 키가 존재하지 않는 경우는 실패합니다. 346 00:30:37,870 --> 00:30:40,150 나는 당신을 경고 할 생각하지 않아요. 347 00:30:40,150 --> 00:30:44,560 아니면 그냥 경고를하지 않도록 적어도 당신이 그것을 설정할 수 있습니다, 그냥 똑바로 실패합니다. 348 00:30:44,560 --> 00:30:49,290 >> 당신은 실제로 이러한 인덱스가 있는지 확인하는 방법은 isset 수 있습니다. 349 00:30:49,290 --> 00:30:54,690 그래서 isset ($ 배열 [ 'HELLO WORLD'])는 false를 반환합니다. 350 00:30:54,690 --> 00:30:59,160 isset ($ 배열 [ 'B']) TRUE를 반환합니다. 351 00:31:06,830 --> 00:31:09,880 당신이 문법을 섞을 수 있습니다. 352 00:31:15,060 --> 00:31:22,440 우리를 테스트 할 수 있습니다 - 어떻게이 배열은 끝나게 것 것은 확신합니다. 353 00:31:43,290 --> 00:31:45,700 오, PHPWord가 필요합니다. 354 00:31:53,960 --> 00:32:00,260 이렇게하면 키가 무엇 지정한 구문을 혼합하고 있습니다 355 00:32:00,260 --> 00:32:03,330 그리고 당신은 그 열쇠가 무엇인지 지정하지 않습니다. 356 00:32:03,330 --> 00:32:05,520 그래서 여기 3 자 값입니다. 357 00:32:05,520 --> 00:32:08,080 당신은 명시 적으로는 키가 될 것입니다 어떤 말했다. 358 00:32:08,080 --> 00:32:11,670 이제 당신은 키가 될 것입니다 어떻게 생각하십니까? 359 00:32:11,670 --> 00:32:21,410 [학생] 0. >> 나는 우리가 지정하지 않은 첫 번째 하나 있기 때문 0 같은데요. 360 00:32:21,410 --> 00:32:23,500 우리는 실제로 이러한 경우 몇을 수행 할 수 있습니다. 361 00:32:23,500 --> 00:32:28,030 그럼 print_r은 재귀 인쇄합니다. 그것은 전체 배열을 인쇄합니다. 362 00:32:28,030 --> 00:32:32,700 어떤이 있다면 그것은 배열의 subarrays를 인쇄합니다. 363 00:32:32,700 --> 00:32:36,630 따라서 print_r ($ 배열); php.test.php. 364 00:32:36,630 --> 00:32:38,810 결국 그에게 0을 준 것 같은데. 365 00:32:38,810 --> 00:32:43,530 이곳에 유의해야 할 뭔가가 실제로이지만, 우리는 두 번째에 연락 드리겠습니다. 366 00:32:43,530 --> 00:32:45,850 하지만 제가이 색인에 하나를 만들기 위해 어떻게하면? 367 00:32:45,850 --> 00:32:51,170 PHP는 문자열 인덱스와 정수 인덱스를 구분하지 않습니다 368 00:32:51,170 --> 00:33:00,280 그래서이 시점에서 난 그냥 인덱스 1을 정의와 나, 둘 다 $ 배열 [1]와 $ 배열 ['1 '] 할 수있는 369 00:33:00,280 --> 00:33:06,250 와 같은 색인과 같은 열쇠가 될 것입니다. 370 00:33:06,250 --> 00:33:13,000 이제 당신은 3이 될 것입니다 어떻게 생각하세요? >> [학생] 2. >> [보덴] 나​​ 2 일거야. 371 00:33:16,000 --> 00:33:18,690 그래. 는 2입니다. 372 00:33:18,690 --> 00:33:24,790 우리가이가 10 그랬다면,이 4 무엇입니까? 당신은 3 색인이 될 것입니다 어떻게 생각하십니까? 373 00:33:27,360 --> 00:33:29,110 나는 11 생각하고 있어요. 374 00:33:29,110 --> 00:33:33,060 PHP는 않습니다 일들을 내 생각 엔 - 그리고 내가 전에 본 것 같은데 - 375 00:33:33,060 --> 00:33:39,760 그냥이 지금까지 사용되는 가장 높은 숫자 인덱스가 무엇인지를 추적하고 있습니다. 376 00:33:39,760 --> 00:33:44,230 이 3 문자열 인덱스를 할당 못할거야. 항상 숫자 인덱스 될 것입니다. 377 00:33:44,230 --> 00:33:47,690 그럼 10에서 일어나는이 지금까지 할당되어있는 가장 높은 하나를 추적 378 00:33:47,690 --> 00:33:52,540 그리고 3-11을 제공거야. 379 00:33:52,540 --> 00:34:02,110 내가 전에 한 말, 그건이 배열을 인쇄하는 방법을 확인합니다. 380 00:34:02,110 --> 00:34:06,850 그것은 키 4 키 11 키 D 키 열을 인쇄합니다. 381 00:34:06,850 --> 00:34:09,790 또는 해보자 구 - 382 00:34:15,760 --> 00:34:22,489 나는 0을 넣어 한적 없어요,하지만 인쇄 1, 2, 3, 4입니다. 383 00:34:22,489 --> 00:34:29,330 내가 여기 전환한다면? 또는의 실제로 이러한 2로 전환 보자. 384 00:34:29,330 --> 00:34:31,940 이제 2, 1, 3, 4를 인쇄합니다. 385 00:34:31,940 --> 00:34:41,270 PHP의 배열은 일반 해시 테이블처럼되지 않습니다. 386 00:34:41,270 --> 00:34:45,570 이 해시 테이블의 시간의 99 % 쯤으로 생각 완벽하게 합리적입니다. 387 00:34:45,570 --> 00:34:53,790 하지만 해시 테이블에 물건을 삽입 된 순서의 개념도가 없습니다. 388 00:34:53,790 --> 00:34:56,639 그래서 당신은 당신의 해시 테이블에 삽입하는 즉시 389 00:34:56,639 --> 00:35:00,590 거기에는 연결리스트가 없다고 및 연결 목록에서 판단 할 수 가정 390 00:35:00,590 --> 00:35:03,980 어떤 먼저 삽입되었습니다. 391 00:35:03,980 --> 00:35:10,060 하지만 여기 우리가 처음 2 삽입하고 2 먼저하는이 배열을 인쇄 때 그렇게 알고 있습니다. 392 00:35:10,060 --> 00:35:13,090 단지 순서에 인쇄되지 않습니다. 393 00:35:13,090 --> 00:35:17,550 가 사용하고있는 기술 자료 구조는 순서가있는 맵이다 394 00:35:17,550 --> 00:35:24,690 그래서 값으로 키를 매핑하고 해당 키가 삽입 된 순서를 기억합니다. 395 00:35:24,690 --> 00:35:31,600 기본적으로 그것은 실제로 짜증 일부 합병증이야 - 396 00:35:31,600 --> 00:35:34,510 자, 당신은 배열 0, 1, 2, 3, 4, 5가 있다고 397 00:35:34,510 --> 00:35:37,700 그리고 당신은 인덱스 2를 먹고 싶어. 398 00:35:37,700 --> 00:35:47,750 그러는 중 한 가지 방법, 그게 어떻게 생겼는지 살펴 보자. 399 00:35:47,750 --> 00:35:50,410 0, 2, 1, 3, 4. 400 00:35:50,410 --> 00:35:54,880 설정 해제는 변수와 배열 인덱스를 모두 설정 해제이기도 해. 401 00:35:54,880 --> 00:35:58,630 따라서 설정 해제 ($ 배열 [2]); 402 00:35:58,630 --> 00:36:03,430 이제 어떻게이처럼 보이도록거야? 2 그냥 가버이기 때문에, 그 완벽하게 좋아요. 403 00:36:03,430 --> 00:36:11,670 당신이 일이 실제로 배열처럼되고 싶으면 더 짜증나는입니다. 404 00:36:11,670 --> 00:36:14,910 나는 임의의 숫자를 넣어드립니다. 405 00:36:14,910 --> 00:36:20,400 지금 내 인덱스를 확인합니다. 406 00:36:20,400 --> 00:36:26,860 1 - 나는 0에서 길이 어디로 가는지 그냥 C 배열처럼되고 싶어요 407 00:36:26,860 --> 00:36:30,810 와 같은 그 위에 반복 할 수 있습니다. 408 00:36:30,810 --> 00:36:38,520 그러나 최대한 빨리 색인 3 뭔지 두 번째 색인을 설정 해제로 현재 인덱스 2가되지 않습니다. 409 00:36:38,520 --> 00:36:44,790 대신에 그냥 인덱스를 제거하고 지금은 0, 1, 3, 4를 이동합니다. 410 00:36:44,790 --> 00:36:48,740 이 완벽하게 합리적이다. 411 00:36:48,740 --> 00:36:53,950 이건 그냥 짜증과 배열 스플 라이스 같은 일을해야합니다. 그래. 412 00:36:53,950 --> 00:36:57,200 >> [학생]이 (가) 당신이 루프에 대한이 있다면 어떻게 될까요 413 00:36:57,200 --> 00:36:59,630 그리고 당신은 모든 요소를​​ 통해 가고 싶어? 414 00:36:59,630 --> 00:37:02,290 이 2 쳤을 때 어느 얻을까요? 415 00:37:02,290 --> 00:37:10,150 배열을 통해 반복. 당신이 할 수있는 2 가지 방법이 있습니다. 416 00:37:10,150 --> 00:37:12,770 당신은 루프에 대한 정기적 인을 사용할 수 있습니다. 417 00:37:12,770 --> 00:37:22,000 이것은 PHP의 또 다른 intricacy입니다. 418 00:37:22,000 --> 00:37:27,420 대부분의 언어는, 내가 말하는 것, 길이 또는 렌 어떤 종류의이 419 00:37:27,420 --> 00:37:30,470 배열의 길이를 나타냅니다. 420 00:37:30,470 --> 00:37:32,820 PHP에서는이 수 있습니다. 421 00:37:32,820 --> 00:37:36,160 그럼 카운트 ($ 배열) $ I + +) 422 00:37:36,160 --> 00:37:42,950 자, 그냥 인쇄 ($ 배열 [$ I]); 423 00:37:45,920 --> 00:37:48,820 공지 사항 : 정의되지 않은 오프셋 : 2. 424 00:37:48,820 --> 00:37:51,610 단지 실패 할거야. 425 00:37:51,610 --> 00:38:03,020 이 대부분의 경우이 같은 배열을 통해 반복 할 필요가 없습니다, 그 이유입니다. 426 00:38:03,020 --> 00:38:07,110 이 과장 될 수 있지만,이 같은 배열을 통해 반복 할 필요가 없습니다 427 00:38:07,110 --> 00:38:19,410 PHP는 foreach ($ 배열로 $ 항목)는 foreach 구문을 제공합니다 때문입니다. 428 00:38:19,410 --> 00:38:31,830 이제 우리는 ($ 항목) 인쇄하는 경우, - 최후의 두 번째에서 토론 - 완벽하게 잘 작동합니다. 429 00:38:31,830 --> 00:38:38,960 foreach가 작동하는지 방법은 첫 번째 인수가 끝난 반복하고있는 배열입니다. 430 00:38:38,960 --> 00:38:44,060 그리고 루프의 각 패스를 통해 두 번째 인수, 항목, 431 00:38:44,060 --> 00:38:52,690 이 배열의 다음 이야기는 걸릴 겁니다. 따라서 배열 순서가 기억나요. 432 00:38:52,690 --> 00:38:55,690 루프를 통해 처음 항목은 123이 될 것입니다 433 00:38:55,690 --> 00:38:59,540 다음 12 수하는 것은 다음 13 수하는 것은 다음 23 수 건 그건 213입니다. 434 00:38:59,540 --> 00:39:04,670 당신은 foreach 같은 것을 할 때 상황이 정말 이상한. 435 00:39:04,670 --> 00:39:07,480 이 작업을 수행하지 않는다 때문에 어떻게되는지 보자. 436 00:39:07,480 --> 00:39:13,320 만약 우리가 설정 해제 ($ 배열 [1]); 437 00:39:20,410 --> 00:39:26,030 그 가능성이 예상되었다. 438 00:39:26,030 --> 00:39:30,950 이 배열을 통해 반복하고 각 시간 당신은 첫 번째 인덱스를 unset하고 있습니다. 439 00:39:30,950 --> 00:39:39,720 따라서 인덱스 0에 대해 제일 먼저, 항목 값을 0에 소요 때문에 123거야. 440 00:39:39,720 --> 00:39:44,630 그러나 내부의 루프에 대한 우리 인스 인덱스 1, 수 있도록 12가 사라 의미합니다. 441 00:39:44,630 --> 00:39:57,480 따라서 인쇄 할 수 있습니다. PHP_EOL. 442 00:39:57,480 --> 00:40:03,580 PHP_EOL은 줄 바꿈이지만, 기술적으로 더 휴대용입니다 443 00:40:03,580 --> 00:40:08,890 Windows에서 뉴 라인은 Mac과 UNIX에서 뉴 라인 다릅니다 때문입니다. 444 00:40:08,890 --> 00:40:18,040 Windows에서 줄 바꿈 \ 연구 \ n을, 다른 곳 반면, 그냥 \ N 경향이있다. 445 00:40:18,040 --> 00:40:25,150 이 시스템의 줄 바꿈이 무엇이든 사용하도록 PHP_EOL가 설정됩니다. 446 00:40:25,150 --> 00:40:29,310 수 있도록 인쇄 할 수 있습니다. 끝에서 ($ 배열) print_r하지 말자. 447 00:40:32,830 --> 00:40:37,390 나는 행동을 할 것이라고 아무 생각도 없습니다. 448 00:40:41,740 --> 00:40:48,960 우리가 배열에서에 도착하기 전에 우리가 12 설정 해제하더라도 항목은 아직 값이 12 일이 소요됩니다. 449 00:40:52,770 --> 00:40:58,840 이것 만 알아 두세요하지만, foreach는 배열의 복사본을 만드는 것 같습니다하지 마십시오 450 00:40:58,840 --> 00:41:02,160 다음 항목이 해당 복사본의 모든 값에 걸립니다. 451 00:41:02,160 --> 00:41:07,760 당신은 루프의 내부 배열을 수정 않더라도 452 00:41:07,760 --> 00:41:17,240 그것은 상관하지 않습니다. 항목은 원본 값을 취할 것입니다. 453 00:41:17,240 --> 00:41:19,240 의가를 unset 해보자. 454 00:41:19,240 --> 00:41:24,460 이게 $ 배열 [1] 인 경우 = "안녕하세요"; 455 00:41:24,460 --> 00:41:31,770 우리는 배열에 "안녕하세요"를 넣어에도 불구하고, 항목은 값에 소요하지 마십시오. 456 00:41:31,770 --> 00:41:37,430 루프를 foreach 다른 문법이 457 00:41:37,430 --> 00:41:45,900 어디서 화살표로 구분하여 두 변수를 넣어. 458 00:41:45,900 --> 00:41:49,680 첫 번째 변수는 그 값의 열쇠가 될 것입니다 459 00:41:49,680 --> 00:41:53,050 그리고이 두 번째 변수는 똑같은 항목이 될 것입니다. 460 00:41:53,050 --> 00:42:01,610 > 1 - 여긴 재미,하지만 우리가 'A'의 오리지널 케이스에 돌아 가면됩니다 461 00:42:01,610 --> 00:42:06,090 'B'-> 1, 462 00:42:06,090 --> 00:42:14,470 우리가 항목으로 각 배열에 대해 반복하는 경우 여기 항목은 매번 하나가 될 것입니다. 463 00:42:14,470 --> 00:42:18,170 그러나 우리는 또한 항목과 관련된 키를 알고 싶다면 464 00:42:18,170 --> 00:42:25,230 > $ 아이템 - 다음에 우리가 달러 키를 않습니다. 465 00:42:25,230 --> 00:42:31,980 . ':'이제 우리는 인쇄 ($ 키를 수행 할 수 있습니다. 466 00:42:31,980 --> 00:42:39,380 이제 이상 반복하고 각 키와 관련된 값을 출력있어. 467 00:42:39,380 --> 00:42:47,030 >> 우리는 foreach 루프에서 할 수있는 추가 문제는이 구문을 볼 수 있습니다. 468 00:42:47,030 --> 00:42:54,770 변수 이름 앞에 앰퍼샌드는 PHP는 참조를 어떻게 경향이 있습니다. 469 00:42:54,770 --> 00:43:00,460 참조는 포인터와 매우 유사합니다, 어디 470 00:43:00,460 --> 00:43:04,820 당신은 포인터를하지 않기 때문에 직접 메모리를 처리하지 마십시오. 471 00:43:04,820 --> 00:43:12,620 그러나 당신은 한 변수가 다른 변수와 같은 이야기로 의미 참조를 가지고 있습니다. 472 00:43:12,620 --> 00:43:21,450 여기의 내부 항목 $ 한번 해보자 구. 가 1, 10로 넘어가 보자. 473 00:43:21,450 --> 00:43:28,800 항목 $를 보자 + +;는 아직도 PHP에 존재합니다. 당신은 아직도 + + 작업을 수행 할 수 있습니다. 474 00:43:28,800 --> 00:43:38,260 php.test.php. 내가 인쇄 할 수 있습니다. print_r ($ 배열); 475 00:43:38,260 --> 00:43:42,730 우리는 2, 11 인쇄 할 수 있습니다. 476 00:43:42,730 --> 00:43:49,560 (항목 $로 $ 배열) 난 그냥 foreach했을 경우 다음 항목 값을 1 될 것입니다 477 00:43:49,560 --> 00:43:54,190 루프를 통해 처음입니다. 는 2 ~ 1 증가하고 다음에이 완료됩니다. 478 00:43:54,190 --> 00:43:57,260 그래서 그 루프의 두 번째 패스 통과하고 해당 항목 수는 10 개입니다. 479 00:43:57,260 --> 00:44:01,570 이 증가의 11 항목, 그리고 나선 그냥 버려진있어. 480 00:44:01,570 --> 00:44:06,670 그런 다음 print_r ($ 배열) 및 주자이 10 만 1 것을 볼 수 있습니다. 481 00:44:06,670 --> 00:44:09,070 그래서 우리가 한 증가가 손실되었습니다. 482 00:44:09,070 --> 00:44:13,410 그러나 foreach ($ 배열로 & $ 품목) 483 00:44:13,410 --> 00:44:21,910 지금은이 항목이 문제를 바로 여기서 같은 항목입니다. 이 같은 거에요. 484 00:44:21,910 --> 00:44:26,820 따라서 $ 항목 + +은 배열 0을 수정합니다. 485 00:44:29,330 --> 00:44:41,850 기본적으로, 당신은 또한 $ k를 할 수 있습니다 -> $ 항목을하고 $을 할 수 배열 [$ K] + +; 486 00:44:41,850 --> 00:44:48,650 >> 그 일을하는 다른 방법이 그래서, 우리는 항목을 수정할 수 무료 487 00:44:48,650 --> 00:44:54,070 하지만 우리의 원래 배열을 수정하지 않습니다. 488 00:44:54,070 --> 00:44:59,720 우리는 열쇠입니다 K를 사용하는 경우, 그럼 우리 배열에 불과 인덱스는 키를 사용하여 우리가 할 수 489 00:44:59,720 --> 00:45:01,530 그리고 그렇게 증가. 490 00:45:01,530 --> 00:45:05,410 이보다 직접적으로 우리의 원래의 배열을 수정합니다. 491 00:45:05,410 --> 00:45:10,690 어떤 이유로 수정할 수있는 능력을 원한다면 당신은 그렇게 할 수 - 492 00:45:10,690 --> 00:45:13,510 사실,이 완벽하게 합리적이다. 493 00:45:13,510 --> 00:45:16,020 당신은 배열 $를 작성해야하고 싶지 않았어 [$ K] + +, 494 00:45:16,020 --> 00:45:27,890 당신은 + 아이템 $를 작성하고 싶어 +하지만 당신은 여전히​​ 말을하고 싶었어요 경우 ($ K === '') 495 00:45:27,890 --> 00:45:30,620 다음 항목을 증가하고 우리의 배열을 인쇄 할 수 있습니다. 496 00:45:30,620 --> 00:45:36,290 이제 우리는 print_r 뭘 기대합니까? 어떤 값을 인쇄해야합니까? 497 00:45:36,290 --> 00:45:43,770 [학생] 2 10. >> 키가 아니었다면 [보덴] 만 ''우리가 실제로 그 사진을 인쇄 않습니다. 498 00:45:51,940 --> 00:45:55,670 >> 당신은 아마 매우 드물게, 만약 그 날, PHP에서 함수를 정의 할 필요가 없습니다 499 00:45:55,670 --> 00:46:03,370 이 기능 어​​떤 같은 함수를 정의 곳하지만 비슷한 표시 될 수 있습니다. 500 00:46:03,370 --> 00:46:09,900 보통 말 (foo는 $, $ 막대)하고 어떤 할을 정의합니다. 501 00:46:09,900 --> 00:46:17,580 내가이 일을한다면, 해당, 무슨 일이든 뭐든 호출을 의미합니다 502 00:46:17,580 --> 00:46:25,110 Baz도 호출간에 변경 될 수 있습니다 첫 번째 인수가 Baz도에 전달 있도록. 503 00:46:25,110 --> 00:46:38,100 $ foo는 작업을 수행 보자 + +; 504 00:46:38,100 --> 00:46:48,020 안쪽으로 여기 Baz도를 ($ 항목) 한번 해보자 구, 505 00:46:48,020 --> 00:46:52,250 이제 우리는 함수를 호출합니다. 506 00:46:52,250 --> 00:46:56,780 인수가 참조에 의해 취해질 것이고, 어떤 의미 우리는 그것을 수정하는 경우 507 00:46:56,780 --> 00:47:00,390 우리가 들어 전달 된 것을 수정하고 508 00:47:00,390 --> 00:47:04,420 그리고 우리가 기대하는이 인쇄 - 내가 구문을 엉망으로하지 않는 한 - 우리, 2, 11이 509 00:47:04,420 --> 00:47:06,300 그래서 실제로 증가했다. 510 00:47:06,300 --> 00:47:08,790 우리는이 곳에서 참조가 필요납니다. 511 00:47:08,790 --> 00:47:13,050 내가 이런 짓을한다면? 이것은 무엇을 의미할까요? 512 00:47:13,050 --> 00:47:15,810 [학생]이 변경됩니다. >> 그래. 513 00:47:15,810 --> 00:47:18,290 항목은 배열에있는 값의 복사본입니다. 514 00:47:18,290 --> 00:47:26,670 따라서 항목이 2로 변경되지만, 배열 [ ''] 계속 한 것입니다. 515 00:47:26,670 --> 00:47:32,560 아니면 내가이 일을 어쩌지? 516 00:47:32,560 --> 00:47:39,260 지금 항목 Baz도에 사본으로 전송됩니다. 517 00:47:39,260 --> 00:47:46,330 따라서 인수의 복사본은 2 증가 될 것 518 00:47:46,330 --> 00:47:49,240 하지만 항목 자체는 2 증가되지 않았다. 519 00:47:49,240 --> 00:47:52,880 그리고 항목, 배열 브래킷 무엇이든 같은 일이 520 00:47:52,880 --> 00:47:55,380 그래서 배열은 증가되지 않았다. 521 00:47:55,380 --> 00:47:57,960 그래서 그 곳 둘 다 필요합니다. 522 00:47:57,960 --> 00:48:03,830 >> PHP는 일반적으로 이것에 대해 꽤 영리 해. 523 00:48:03,830 --> 00:48:06,570 당신은 내가 참조에 의해 전달하려는 생각할 수 - 524 00:48:06,570 --> 00:48:09,560 이와 같은 사실은 실제로 psets 중 하나를 질문했다. 525 00:48:09,560 --> 00:48:14,480 마치 말 questions.txt 일이었다고 526 00:48:14,480 --> 00:48:19,280 왜 참조하여이 구조체를 전달 할 수도? 527 00:48:19,280 --> 00:48:21,250 그 대답은 무엇입니까? 528 00:48:21,250 --> 00:48:25,100 [학생]는 당신이 큰 일을 복사 할 필요가 없습니다 그래서. >> 그래. 529 00:48:25,100 --> 00:48:32,920 구조체는 임의의 큰 될 수 있으며, 당신은 인자로 구조체를 통과 할 때 530 00:48:32,920 --> 00:48:36,800 그것은 기능에 넘겨 해당 전체 구조체를 복사 할 필요가 531 00:48:36,800 --> 00:48:40,410 당신은 참조에 의해 구조체를 통과하는 경우 반면 532 00:48:40,410 --> 00:48:46,530 다음은 함수에 인자로 4 바이트 주소를 복사합니다. 533 00:48:48,520 --> 00:48:52,320 PHP은 그보다는 똑똑 약간 있습니다. 534 00:48:52,320 --> 00:49:00,650 좀 기능이 내가 여기에 1000 가지의 배열을 전달하는 경우는, 535 00:49:00,650 --> 00:49:03,990 그 방법은 우리가 그 모든 일 1,000을 복사해야 돼요 의미 536 00:49:03,990 --> 00:49:10,450 기능에 합격 하는가? 이건 바로 그렇게 할 필요가 없습니다. 537 00:49:10,450 --> 00:49:15,940 이 함수 내부는 실제로 푸 수정하지, 않는 경우 538 00:49:15,940 --> 00:49:22,660 그래서 TRUE를 반환 ($ foo는 === '안녕하세요')합니다.; 539 00:49:22,660 --> 00:49:26,460 우리가 실제로 함수의 인자 내부를 수정 결코주의, 540 00:49:26,460 --> 00:49:30,010 이는 foo에 복사 할 필요가 없다니까요 어떤이에 전달 된 것을 의미합니다 541 00:49:30,010 --> 00:49:32,100 그걸 수정하지 없기 때문입니다. 542 00:49:32,100 --> 00:49:39,240 그래서 PHP와 작품 인자 인 방법은 항상 참조에 의해 전달된다 543 00:49:39,240 --> 00:49:42,170 당신은 실제로 그것을 변경하려고 때까지. 544 00:49:42,170 --> 00:49:51,160 나는 $ 푸 + + 말하면 지금, 지금 원래 foo는의 복사본을 만들어 복사본을 수정합니다. 545 00:49:51,160 --> 00:49:53,090 이 시간을 절약 할 수 있습니다. 546 00:49:53,090 --> 00:49:58,210 이 거대한 배열을 터치하지 않을 경우, 당신은 실제로 그것을 변경하지 않을 547 00:49:58,210 --> 00:50:02,360 그것은 복사본을 만들 필요가 없습니다 548 00:50:02,360 --> 00:50:06,640 우리는 그냥 그것을 복사하지 않습니다되므로 앰퍼샌드를 입력하면 반면 549 00:50:06,640 --> 00:50:08,640 당신은 그걸 수정하려면 경우에도 마찬가지입니다. 550 00:50:08,640 --> 00:50:10,680 이 문제는 복사 - 온 - 쓰기이라고합니다. 551 00:50:10,680 --> 00:50:17,380 당신이 운영 체제 과정을 특히, 다른 곳에서 볼 수 있습니다. 552 00:50:17,380 --> 00:50:23,880 복사 - 온 - 쓰기는 무언가의 사본을 만들 필요가 없습니다 매우 일반적인 패턴입니다 553 00:50:23,880 --> 00:50:26,650 실제로 변경 한 경우 제외. 그래. 554 00:50:26,650 --> 00:50:29,520 당신은 테스트 내부의 증가를했다 [학생] 어떤 경우에 555 00:50:29,520 --> 00:50:33,700 그래서 1000에서 단 1 요소는 변경 될 필요가 있었을까요? 556 00:50:33,700 --> 00:50:38,770 잘 모르겠 는데요. 557 00:50:38,770 --> 00:50:51,250 나는 전체 일을 복사 거라고 생각하지만, 그것이 충분한 똑똑 가능합니다 - 558 00:50:51,250 --> 00:51:00,020 사실, 내가 생각하는 것은 우리가이 모양 배열을 가지고 상상입니다 $ array2 = [ 559 00:51:00,020 --> 00:51:11,000 그런 다음 색인 'A'는 [1 2 3 4] 및 색인 'B'의 배열 것은 무엇이든의 배열입니다. 560 00:51:11,000 --> 00:51:15,380 모두 내가 사이에 쉼표가 필요합니다. 쉼표가있는 상상해보십시오. 561 00:51:15,380 --> 00:51:21,210 그런 다음 'C'는 값 3. 562 00:51:24,210 --> 00:51:26,290 좋아요. 563 00:51:26,290 --> 00:51:33,440 자, 가자 우리는 $ Baz도 ($ array2)을 할 말을; 564 00:51:33,440 --> 00:51:36,540 곳 Baz도는 참조하여이 문제를 고려하지 않습니다. 565 00:51:43,510 --> 00:51:47,370 그래서 $ foo는 [ 'C'] + +; 566 00:51:47,370 --> 00:51:52,340 이것은 우리가 인자로 array2을 통과 그러한 예입니다 567 00:51:52,340 --> 00:51:57,010 다음 그것을 증가하여 배열의 특정 인덱스를 수정합니다. 568 00:51:57,010 --> 00:52:01,090 솔직히 PHP가 무슨 짓을할지 몰라. 569 00:52:01,090 --> 00:52:07,200 , 그것은 쉽게 모든 게의 복사본을 만들 수 있습니다,하지만 똑똑 570 00:52:07,200 --> 00:52:15,030 만약이는 별개의 값을 가지고 이러한 키의 복사본을 만들 것입니다 571 00:52:15,030 --> 00:52:20,620 하지만 여전히 같은 배열 1,2,3,4를 가리킬 수 있습니다 572 00:52:20,620 --> 00:52:22,320 이 여전히 동일한 배열을 가리킬 수 있습니다. 573 00:52:22,320 --> 00:52:24,170 나는 아이 패드를드립니다. 574 00:52:28,900 --> 00:52:45,950 우리는, [1,2,3,4]로,이 남자가 점 3이 배열에서 한 남자가 점을 통과 575 00:52:45,950 --> 00:52:51,350 이 사람은 점 [34, ...] 576 00:52:51,350 --> 00:52:58,590 이제 우리는 Baz도에 그것을 전달되고 있는지를, 우리는이 수정됩니다. 577 00:52:58,590 --> 00:53:03,550 PHP가 똑똑하다면, 그냥 할 수 - 578 00:53:11,850 --> 00:53:18,230 우리는 여전히 일부 메모리를 복사했지만,이 거대한 중첩 subarrays가 있다면 579 00:53:18,230 --> 00:53:21,560 우리는 사람들을 복사 할 필요가 없습니다. 580 00:53:21,560 --> 00:53:27,530 그 얘기가 무엇을인지는 잘 모르겠지만, 난 그런 일을 상상할 수 있습니다. 581 00:53:29,050 --> 00:53:36,690 이것은 또한 PHP 이상의 C의 아주 큰 장점입니다. 582 00:53:36,690 --> 00:53:40,320 >> PHP는 인생을 더 쉽게 많은 들어, 수 있습니다 583 00:53:40,320 --> 00:53:45,060 하지만 가지가 수행 얼마나 잘 전혀 몰라 584 00:53:45,060 --> 00:53:52,530 이 일이 복사본을 만드는 때 후드 아래에 아무 생각이 없기 때문에, 585 00:53:52,530 --> 00:53:55,170 아, 그 일정한 시간 복사 될 것입니다, 586 00:53:55,170 --> 00:54:01,140 그냥 한 포인터를 바꿀 것입니다, 이건 말도 안되게 어려운 선형 복사하실 건가요? 587 00:54:01,140 --> 00:54:03,000 이 공간을 찾을 수없는 경우 어떻게해야합니까? 588 00:54:03,000 --> 00:54:06,760 그 후 좀 더 공간을 얻을 가비지 수집을 실행해야합니까? 589 00:54:06,760 --> 00:54:11,210 하고 가비지 컬렉션은 임의로 정도 걸릴 수 있습니다. 590 00:54:11,210 --> 00:54:13,600 C에서 당신은 이런 일에 대해 걱정할 필요가 없습니다. 591 00:54:13,600 --> 00:54:19,780 당신이 쓸 때마다 한 줄은 수행 할거야 방법에 대한 꽤 많은 이유 수 있습니다. 592 00:54:26,800 --> 00:54:29,150 >> 의이으로 돌아 보자. 593 00:54:35,400 --> 00:54:37,520 그게 당신이 해쉬 함수를 감당 해 내야 만하지 않는 것이 어떻게 좋다 594 00:54:37,520 --> 00:54:39,010 연결리스트, 또는 그런 건 없나요? 595 00:54:39,010 --> 00:54:41,980 해시 테이블로 작업하는 것은 이제 쉽게이기 때문에, 여기에서 작동 할 수있는 재미 퍼즐입니다. 596 00:54:41,980 --> 00:54:45,920 unique.php과의라는 파일을 열고는 PHP 프로그램을 작성 597 00:54:45,920 --> 00:54:48,330 (또한 "스크립트"로 알려진). 598 00:54:48,330 --> 00:54:55,700 그들은 당신이 명령 줄에서 실행하는 간단한 일 경우 우리는 그들을 스크립트를 호출하는 경향이 있습니다. 599 00:54:55,700 --> 00:55:02,950 기본적으로, 당신은 컴파일되지 않지만 당신은 실행 파일을 실행 할거야하는 모든 언어 600 00:55:02,950 --> 00:55:05,920 명령 줄에서 해당 실행 스크립트를 호출 할 수 있습니다. 601 00:55:05,920 --> 00:55:08,510 난 단지뿐만 아니라이 일을 C 프로그램을 작성할 수 602 00:55:08,510 --> 00:55:12,300 처음 그것을 컴파일하고 바이너리를 실행 이후 난 그걸 스크립트 호출하지 않습니다. 603 00:55:12,300 --> 00:55:15,480 그러나 PHP 프로그램 우리는 스크립트를 호출거야. 604 00:55:15,480 --> 00:55:23,830 아니면 우리가 파이썬이나 펄이나 Node.js 또는 그 일에 그런 쓴 경우, 605 00:55:23,830 --> 00:55:26,500 당신은 명령 줄에서 그들을 실행하기 때문에 우리는 그들을 스크립트 호출 할 606 00:55:26,500 --> 00:55:30,040 그러나 우리는 그들을 컴파일하지 않습니다. 607 00:55:30,860 --> 00:55:33,400 우리는 너무 빨리이 작업을 수행 수 있습니다. 608 00:55:36,960 --> 00:55:41,480 우리는 변수는 argv를 사용하지 않을 수 있습니다. 이런 식으로 불어 야지. 609 00:55:41,480 --> 00:55:45,730 는 고유 한 전화 프로그램을 작성합니다. 610 00:55:45,730 --> 00:55:49,400 당신은 입력이 한 줄에 하나의 단어가 포함 된 것이라고 가정 할 수 있습니다. 611 00:55:49,400 --> 00:55:52,020 사실, 변수는 argv는 사용하기 아주 사소한 것입니다. 612 00:56:03,730 --> 00:56:06,720 unique.php. 613 00:56:08,550 --> 00:56:13,750 우선 먼저, 우리는 우리가 한 명령 줄 인수를 전달되었는지 확인하고 싶습니다. 614 00:56:13,750 --> 00:56:20,900 당신이 C에서 argc와 argv에 존재 기대하는 것처럼, 우리는 여전히 PHP의 설정을합니다. 615 00:56:20,900 --> 00:56:33,900 그럼 내가 메시지 나 아무 것도 인쇄 처리되지 않습니다 ($ argc! == 2) 경우. 616 00:56:33,900 --> 00:56:37,340 난 그냥 1 오류 코드를 종료합니다. 617 00:56:37,340 --> 00:56:41,340 또 1 회복 될 수있을 것이다. 618 00:56:41,340 --> 00:56:53,180 우리 몫 거의 PHP에서이 상태로되지 않습니다 - 619 00:56:53,180 --> 00:56:57,820 보통은 함수에 의해 호출되는 함수에 의해 호출되는 함수에 의해 호출되는 함수에 있어요. 620 00:56:57,820 --> 00:57:02,070 그리고 뭔가 일이 잘못되어서 방금 완전히 모든 프로그램을 종료하려는 경우는, 621 00:57:02,070 --> 00:57:05,680 출구는 프로그램을 종료시킬 것이다. 622 00:57:05,680 --> 00:57:08,160 이것은 또한 C.에있는 623 00:57:08,160 --> 00:57:10,700 당신은 함수에서 함수에 함수에서 함수에 있다면 624 00:57:10,700 --> 00:57:17,540 그리고 방금 프로그램을 죽이고 싶어, 당신은 출구를 호출 할 수 있으며 단지 종료됩니다. 625 00:57:17,540 --> 00:57:23,120 그러나 PHP에서 우리가이 최상위 수준에있는 것으로 훨씬 더 드문 것입니다. 626 00:57:23,120 --> 00:57:26,090 보통은 함수의 어떤 종류의 안으로, 그래서 우리는 출구를 호출 627 00:57:26,090 --> 00:57:29,650 , 우리가 실현 한 것을 반환 할 필요가 없습니다 않도록 오류가 있습니다 628 00:57:29,650 --> 00:57:32,270 그 오류가 발생했습니다 인식하면 그 친구는 최대 반환합니다. 629 00:57:32,270 --> 00:57:35,270 우리는 정말 (1) 종료, 그 일을 싫어; 630 00:57:35,270 --> 00:57:38,240 반환 (1),이 경우에는 이에 상응하는 것입니다. 631 00:57:38,240 --> 00:57:44,000 >> 그럼 우리가 열고 자하는 우리는 fopen하고 싶습니다. 632 00:57:44,000 --> 00:57:46,760 인자는 매우 유사 할 수 있습니다. 633 00:57:46,760 --> 00:57:51,600 우리는 fopen ($ argv가 [1], 우리는 독서를 위해 열하고 싶습니다.하고 싶은 634 00:57:51,600 --> 00:57:55,720 우리가 F에 전화를하고 리소스를 반환합니다. 635 00:57:55,720 --> 00:58:02,180 이것은 우리가 FILE *를 말 할 필요가 없어 제외하고 C이 어떻게 꽤 유사 해 보입니다. 636 00:58:02,180 --> 00:58:06,170 대신 우리는 $ f를 말한다. 좋아요. 637 00:58:06,170 --> 00:58:17,190 사실,이도 우리에게 파일을 호출 PHP 함수에 같은 힌트를 제공합니다 생각합니다. PHP 파일. 638 00:58:17,190 --> 00:58:23,990 이게 어떻게 할 것은 배열로 전체 파일을 읽을 수 있습니다. 639 00:58:23,990 --> 00:58:29,770 당신은 fopen을 할 필요가 없습니다. 그것은 당신을 위해 그렇게 할거야. 640 00:58:37,450 --> 00:58:43,700 그럼 $ 라인 = 파일 ($ argv가 [1]); 641 00:58:43,700 --> 00:58:49,680 이제 파일의 라인의 모든 라인에 있습니다. 이제 우리는 라인을 정렬하고 싶습니다. 642 00:58:49,680 --> 00:58:52,180 우리가 어떻게 선을 정렬 할 수 있습니다? 643 00:58:52,180 --> 00:58:54,920 우리는 선을 정렬합니다. 644 00:58:54,920 --> 00:58:58,080 그리고 지금 우리가 뭐든간에를 인쇄 할 수 있습니다. 645 00:58:58,080 --> 00:59:05,580 아마도 가장 쉬운 방법은 foreach ($ 라인 $로 라인) 라인 달러를 반향이다; 646 00:59:05,580 --> 00:59:10,960 [학생] 우리는 정렬에 정보를 참조하여 선을 통과하지 하시겠습니까? 647 00:59:10,960 --> 00:59:28,850 정렬 함수를 정렬 (& $ 배열)로 정의 될 곳입니다. 648 00:59:28,850 --> 00:59:32,650 이 함수를 호출 할 때이 참조하여 전달하지 않습니다. 649 00:59:32,650 --> 00:59:36,900 이 참조로 복용으로 정의하는 기능입니다. 650 00:59:36,900 --> 00:59:40,900 이 무엇이 잘못되었는지 정확히 실제로 651 00:59:40,900 --> 00:59:46,220 우리가 5.3에서 5.4에 갔을때 우리는 우리의 서버에 모든 걸 걸었합니다. 652 00:59:46,220 --> 00:59:53,800 5.4 때까지,이 완벽하게 합리적인했다. 653 00:59:53,800 --> 00:59:58,740 함수는 참고 자료로 가져 기대하지 않지만, 당신은 참조로 전달할 수 있습니다 654 00:59:58,740 --> 01:00:02,860 함수를 수정하는 일이 있다면, 그것은 여전히​​ 수정있어. 655 01:00:02,860 --> 01:00:05,850 5.4부터, 당신은이 작업을 수행 할 수는 없을 것 같아. 656 01:00:05,850 --> 01:00:11,740 함수가 명시 적으로 그런 짓을한다면 이제 당신이 참조에 의해 전달되는 유일한 방법입니다. 657 01:00:11,740 --> 01:00:19,840 당신이 그것을 수정하지 않으려면 다음은 $ 사본 = $ 라인과 패스 사본을 수행해야합니다. 658 01:00:19,840 --> 01:00:24,820 이제 줄은 보존되며 복사가 변경됩니다. 659 01:00:27,670 --> 01:00:31,460 php.unique.php. 내가 뭔가를 엉망으로했을 수 있습니다. 660 01:00:31,460 --> 01:00:33,190 예기치 않은 '정렬'. 661 01:00:38,320 --> 01:00:43,850 우리이 작업을 수행 뭔가있을거야. 662 01:00:43,850 --> 01:00:45,820 심지어이 없습니다. 663 01:00:45,820 --> 01:00:52,140 당신은 첫 번째 인수가 배열 될 것으로 예상되는 설명서를 읽을 때주의 664 01:00:52,140 --> 01:00:56,490 그리고 그것은 참조에 의해 갔죠. 665 01:00:58,160 --> 01:01:03,540 왜 나 한테 불평? 내가 원하지 않는 것으로 아직이 기능 정렬이 때문입니다. 666 01:01:03,540 --> 01:01:09,210 좋아요, php.unique.php. 나는 파일이 없기 때문에 나는 그것을 인수를 통과하지 못했습니다. 667 01:01:09,210 --> 01:01:13,560 이 test.php에 php.unique.php입니다. 668 01:01:13,560 --> 01:01:19,080 여기 좋은 정렬 순서로 인쇄 test.php입니다. 669 01:01:19,080 --> 01:01:24,600 정렬 순서는 코드 파일에 대한 좀 이상 한데요 것을 알 670 01:01:24,600 --> 01:01:27,460 우리 빈 줄의 처음 오실거야 때문에 671 01:01:27,460 --> 01:01:30,190 그러면 우리 한 수준 들여 쓰기를 모두 올 거에요 672 01:01:30,190 --> 01:01:33,360 그러면 우리 더 들여 쓰기를 모두 갖추고 있습니다. 673 01:01:33,360 --> 01:01:38,620 그래. >> [학생] 지금의 소스 코드는 참조에 의해 전달되지 않습니까? 674 01:01:38,620 --> 01:01:42,240 그는 일반적으로 값에 의해 전달된다? 675 01:01:42,240 --> 01:01:50,240 [보덴]이 함수를 호출 할 때, 그는 참조에 의해 전달 된 여부를 결정하지 마십시오. 676 01:01:50,240 --> 01:01:53,960 그것은이 참조에 의해 전달되었는지 여부를 결정하는 함수 정의입니다. 677 01:01:53,960 --> 01:01:59,450 그리고 종류의 함수 정의를보고하거나 본을보고, 678 01:01:59,450 --> 01:02:02,820 이 참조에 의한 인수를 걸립니다. 679 01:02:02,820 --> 01:02:07,160 그럼에 관계없이 당신이 참조로 가져 할 것인지, 그렇습니다 참조하여보십시오. 680 01:02:07,160 --> 01:02:10,200 이 곳에서 배열을 수정합니다. 681 01:02:10,200 --> 01:02:17,400 이것은 단지 허용되지 않습니다. 이 작업을 수행 할 권한이 없습니다. >> [학생] 아, 그래요. 682 01:02:17,400 --> 01:02:22,410 [보덴]이, 정렬은 참조에 의해 라인을 가져 가서 수정 예정이다. 683 01:02:22,410 --> 01:02:26,850 당신이 그렇게하고 싶지 않았어 다시 한번, 당신은 어떤 종류의 사본을 만들 수 있습니다. 684 01:02:26,850 --> 01:02:35,850 심지어이 경우, 사본은 실제로 라인의 복사본이 아닙니다. 685 01:02:35,850 --> 01:02:40,620 처음 수정됩니다 때까지, 그냥 같은 일을 가리 686 01:02:40,620 --> 01:02:44,430 어디서 처음에는 정렬 기능으로 수정을 당할 것이다 687 01:02:44,430 --> 01:02:50,940 위치 때문에 그건 복사에 쓰기, 지금 사본이 만들어 질 예정이다. 688 01:02:57,500 --> 01:03:04,250 당신은 또한이 작업을 수행 할 수 있습니다. 당신은 앰퍼샌드를 볼 수있는 다른 장소들입니다. 689 01:03:04,250 --> 01:03:07,190 당신은 foreach 루프에서 볼 수, 당신은 함수 선언에 표시 690 01:03:07,190 --> 01:03:10,040 단지 변수를 지정할 때, 당신은 그걸를 참조하십시오. 691 01:03:10,040 --> 01:03:12,350 이제 우리는이 일을하여 아무 것도 수행하지 않았 692 01:03:12,350 --> 01:03:15,600 복사 및 라인이 그대로 같은 때문입니다. 693 01:03:15,600 --> 01:03:19,940 당신은 줄을 사용하여 상호 교환 복사 할 수 있습니다. 694 01:03:19,940 --> 01:03:25,430 그리고 그 설정 해제 행을하지 않습니다, 당신은 설정 해제 ($ 사본)를 할 수 695 01:03:25,430 --> 01:03:29,120 당신은 같은 일에 대한 참조를 잃게됩니다. 696 01:03:29,120 --> 01:03:33,440 따라서이 시점부터 지금 라인은 라인에 액세스 할 수있는 유일한 방법입니다. 697 01:03:36,450 --> 01:03:38,770 >> 질문이 있으십니까? 698 01:03:41,000 --> 01:03:42,460 그래. 699 01:03:42,460 --> 01:03:45,880 완전히 주제와 [학생]하지만 함께 PHP를 닫 할 필요가 없습니다 - 당신은 몰라 >>. 700 01:03:45,880 --> 01:03:47,730 좋아요. 701 01:03:47,730 --> 01:03:53,790 [보덴]는을 닫 나쁜 관행이라는 말을하고만큼이나 나도 멀리합니다. 702 01:03:53,790 --> 01:03:57,580 즉, 특히 스크립트에서, 아마 과장입니다 703 01:03:57,580 --> 01:04:03,740 하지만이 작업을 수행하는 경우 어떤 일이 벌어지는 지 살펴 보자. 704 01:04:03,740 --> 01:04:08,890 그래서 아무 것도하지 않았어. 내가 원한 경우 - [한숨] 705 01:04:13,870 --> 01:04:16,960 나는 인수를 전달해야합니다. 706 01:04:19,000 --> 01:04:22,050 쏴. 나는 잘못했다. 707 01:04:24,340 --> 01:04:28,310 인수가 너무 php.unique.php. 708 01:04:28,310 --> 01:04:30,980 지금은 이런 필요하지 않습니다. 709 01:04:34,520 --> 01:04:37,740 내가 한 유효한 인수를 전달합니다. 710 01:04:37,740 --> 01:04:42,050 이 기능은 인쇄하고 있건 인쇄. 711 01:04:45,260 --> 01:04:50,080 나는 복사본을 인쇄 있고 사본이 존재하지 않습니다. 라인 그럼. 712 01:04:53,650 --> 01:04:58,270 그것은 모든 인쇄하고 여기에 모든 물건을 발견 713 01:04:58,270 --> 01:05:06,690 PHP의 아무것도 그 PHP 태그 밖에 있기 때문에 714 01:05:06,690 --> 01:05:09,520 문자 그대로 인쇄 할 것이다. 715 01:05:09,520 --> 01:05:18,050 왜 HTML이야, 내가 사업부, 어쩌구 저쩌구 클래스 또는 무엇이든을 할 수있는 것은 참으로 즐거운 일이야 716 01:05:18,050 --> 01:05:25,140 그런 다음, 어쩌구 저쩌구하고 몇 가지 PHP 코드를 수행하고 최종 사업부 해. 717 01:05:25,140 --> 01:05:36,460 그리고 지금, 나는 최고에 내 좋은 사업부를 모든이를 인쇄이 PHP 인쇄, 하단의 사업부. 718 01:05:36,460 --> 01:05:43,510 이런 일이 일어날 때 비참한 즉, 아주 흔한 일입니다 719 01:05:43,510 --> 01:05:47,930 파일의 맨 아래에있는 단지 길 잃은 바꿈. 720 01:05:47,930 --> 01:05:50,940 당신은 큰 문제가되지 않을 거라 생각하지 않을 721 01:05:50,940 --> 01:05:58,660 그 브라우저는 사실을 고려 할 때까지 - 722 01:05:58,660 --> 01:06:03,880 >> 어떻게 작업을 리디렉션 또는 기본적으로 모든 헤더 작업, 723 01:06:03,880 --> 01:06:07,980 당신은 웹 사이트에 연결을하고 이러한 모든 헤더와 일 다시 보낼 때 724 01:06:07,980 --> 01:06:12,020 응답 200 응답 리디렉션 또는 무엇이든 같이, 725 01:06:12,020 --> 01:06:18,230 데이터의 첫 번째 바이트가 전송 될 때까지 헤더에만 유효합니다. 726 01:06:18,230 --> 01:06:23,140 당신은 시대의 수천을 리디렉션하지만, 즉시 데이터의 첫 번째 바이트가 전송되기 때문에 수 727 01:06:23,140 --> 01:06:26,120 당신은 다시 리디렉션 할 필요는 없을 것 같아. 728 01:06:26,120 --> 01:06:31,860 >> 당신은 파일의 맨 아래에 빗나간 줄 바꿈이있는 경우 729 01:06:31,860 --> 01:06:37,260 과가이 기능을 사용 한 다음 원하는 그런 말을 해 - 730 01:06:41,580 --> 01:06:52,870 이 index.php입니다 다른 파일입니다 말을하고 당신이 뭔가를 require_once하자 - 731 01:06:52,870 --> 01:06:56,920 난 그 좋은 예 생각 할 수 없습니다. 732 01:06:56,920 --> 01:07:04,740 맨 아래에있는이 라인은 에코됩니다 때 문제가 발생합니다. 733 01:07:04,740 --> 01:07:08,660 당신은 아직 에코 된 것도 원하지 않아. 734 01:07:10,820 --> 01:07:15,700 당신은 에코하기만한 의도하지 않았지만, 뭔가가 에코 됐지 735 01:07:15,700 --> 01:07:17,990 그래서 지금 당신은 더 이상 헤더를 보낼 수는 없을 것 같아 736 01:07:17,990 --> 01:07:20,030 당신은 불평을받을거야. 737 01:07:22,170 --> 01:07:24,420 당신은 그 닫는 태그가 필요하지 않습니다. 738 01:07:24,420 --> 01:07:27,420 당신은 HTML과 함께 무언가를 할 거라면 - 739 01:07:27,420 --> 01:07:30,490 그리고 여기 사업부를 할 수 있도록 완벽하게 합리적 무엇이든 740 01:07:30,490 --> 01:07:39,450 그리고이 시점에서 당신은 또는 당신이 그들을 포함 할 수 없습니다 수 있습니다. 741 01:07:39,450 --> 01:07:41,590 정말 중요하지 않습니다. 742 01:07:41,590 --> 01:07:45,450 그러나 PHP 스크립트에서 그것을 닫습니다 드문 것입니다. 743 01:07:45,450 --> 01:07:50,400 모든 PHP, 절대적으로 모든 경우 744 01:07:50,400 --> 01:07:55,460 당신은 정말 닫습니다 / 당신이 그것을 닫을 없습니다 필요하지 않습니다. 745 01:08:02,030 --> 01:08:05,720 >> 문자열을 다루는 것은 C.에서보다 훨씬 좋네요 746 01:08:05,720 --> 01:08:09,470 PHP에서는 단일 또는 큰 따옴표로 문자열을 지정할 수 있습니다. 747 01:08:09,470 --> 01:08:12,820 작은 따옴표를 사용하면 "탈출"시퀀스를 사용할 수 없습니다. 748 01:08:12,820 --> 01:08:17,640 지속적으로,, 어쩌구 저쩌구를 탈출. 749 01:08:19,920 --> 01:08:24,010 따라서 printf PHP에서 매우 드문 일입니다. 750 01:08:24,010 --> 01:08:32,290 pset 5가 sprintf이든 뭐든간에 사용 - 난 것은 일종의을 할 원한다면 printf 사용할 같아요. 751 01:08:32,290 --> 01:08:36,060 하지만 당신은 001.jpg과 002.jpg을하고 싶어요. 752 01:08:36,060 --> 01:08:40,300 그래서 그런 일에 대해 난 정말 printf 사용할 텍스트를 포맷 할 위치. 753 01:08:40,300 --> 01:08:44,689 그러나 그렇지 않으면 그냥 문자열 연결을 사용합니다. 754 01:08:44,689 --> 01:08:47,000 정말 printf 사용하지 않습니다. 755 01:08:49,229 --> 01:09:00,170 우리는 작은 따옴표와 큰 따옴표 사이의 내용을 차별화하고 있습니다. 756 01:09:00,170 --> 01:09:07,490 가장 큰 차이는 작은 따옴표가이 그대로 인쇄 될 것입니다. 757 01:09:07,490 --> 01:09:15,390 PHP에 문자 데이터 형식이 없습니다, C는 달리,이이에 해당집니다. 758 01:09:15,390 --> 01:09:17,970 둘 다 문자열을하고 있습니다. 759 01:09:17,970 --> 01:09:29,180 그리고 따옴표 문자열에 대한 좋은 점은 내가 말을 할 수있다 '안녕하세요 세상을!' , 어쩌구 저쩌구, 760 01:09:29,180 --> 01:09:33,340 $ $ wooo. 761 01:09:33,340 --> 01:09:38,260 내가이가 그대로를 인쇄 할 것입니다 인쇄하면 어떻게됩니까. 762 01:09:38,260 --> 01:09:40,680 의 물건을 모두 없애 ​​보자. 763 01:09:40,680 --> 01:09:44,700 그럼 $ str1를 반향; 764 01:09:48,569 --> 01:09:56,570 , 달러 기호 : 그것은 말 그대로 그 모든 일 인쇄 765 01:09:56,570 --> 01:09:58,770 당신은 뉴 라인 줄 알았는데 백 슬래시 N, - 766 01:09:58,770 --> 01:10:01,500 그 모든 일이 그대로 출력합니다. 767 01:10:01,500 --> 01:10:05,650 당신이 회피 할 필요가있는 유일한 방법은 작은 따옴표 아르 768 01:10:05,650 --> 01:10:09,470 그렇지 않으면해서 그게 작은 따옴표를 닫는 것 같아요 것입니다. 769 01:10:09,470 --> 01:10:15,050 따옴표, 완전히 다른. 770 01:10:20,300 --> 01:10:25,870 우리는 이미 구문 강조가 무슨 심각하게 잘못된 갈 건지에 우리를 cluing을 참조하십시오. 771 01:10:25,870 --> 01:10:36,190 php.unique. 정의되지 않은 변수 : wooo이가 wooo라는 변수로 해석되기 때문입니다. 772 01:10:36,190 --> 01:10:42,400 따옴표는에 변수를 삽입 보자 - 773 01:10:42,400 --> 01:10:52,730 $ 이름 = "롭"라고하자, 774 01:10:52,730 --> 01:10:58,020 따라서 "안녕, 내 이름은 이름 $입니다!"에코; 775 01:10:58,020 --> 01:11:09,260 이 변수로 인식합니다. 776 01:11:09,260 --> 01:11:21,210 내가 그걸를 실행할 때 - 내가 줄 바꿈을 삽입합니다 - 안녕하세요, 제 이름은 롭입니다! 와, 안녕하세요! 777 01:11:21,210 --> 01:11:24,910 제가 위 wooo의 인쇄를 제거 적이 있기 때문입니다. 778 01:11:24,910 --> 01:11:30,020 당신이 할 수있는 한 더 단계가 있습니다. 779 01:11:30,020 --> 01:11:39,250 $ 배열 = [1, 2, 3]; 780 01:11:39,250 --> 01:11:43,270 내가 배열의 첫 번째 인덱스를 인쇄하려면? 781 01:11:43,270 --> 01:11:45,150 당신은 $ 배열 [0] 해. 782 01:11:45,150 --> 01:11:49,280 구문 강조는 단서입니다. 이 무엇을 할거야? 783 01:11:52,320 --> 01:11:54,510 php.unique. 784 01:11:54,510 --> 01:11:59,860 안녕하세요, 제 이름은 1입니다! 어떤 내가 원하던 게 아니 잖아. 785 01:11:59,860 --> 01:12:05,050 구문 강조 나 한테 거짓말을 했어. 786 01:12:05,050 --> 01:12:13,020 가자 시도는 'A'-> 1, 'B'-> 2.주세요 787 01:12:18,450 --> 01:12:21,440 그건 내가 그걸를 작성해야 방법은 다음과 같습니다. 788 01:12:26,350 --> 01:12:32,160 예기치 않은 작은 따옴표 (나불 나불 나불 T_ENCAPSED). 789 01:12:32,160 --> 01:12:41,780 아이디어는 배열의 일환으로이 인식되지 않은 것으로합니다. 790 01:12:41,780 --> 01:12:46,620 이 편지에서 색인을 생성 배열로이 인식 않아. 791 01:12:46,620 --> 01:12:49,870 당신은 중괄호로 둘러싸인 그렇게되고 싶지 792 01:12:49,870 --> 01:12:54,730 지금이 곱슬 괄호에있는 모든, 보간 될 것입니다 793 01:12:54,730 --> 01:13:00,340 그건 우리가 마법의 오른쪽 장소에이 변수를 삽입하기위한 사용하는 단어입니다. 794 01:13:00,340 --> 01:13:04,280 지금 php.unique는이 일을하고, 안녕하세요, 제 이름은 1입니다! 예상 795 01:13:04,280 --> 01:13:07,720 또는 안녕, 내 이름은 롭입니다! 796 01:13:14,110 --> 01:13:23,130 작은 따옴표에 대한 좋은 현상이야 하나가 있다는 것입니다 - 797 01:13:23,130 --> 01:13:28,480 보간에 어떤 비용이있어. 798 01:13:30,520 --> 01:13:35,100 당신이 따옴표를 사용하는 경우, 인터프리터는이 문자열을 통해 이동하는 799 01:13:35,100 --> 01:13:41,500 , 확인하고 "아, 여기가 변수입니다. 지금은 그 변수를 가져 와서 여기를 삽입 가야 해요." 800 01:13:41,500 --> 01:13:48,930 당신은 어떤 변수를 사용하지 않는 경우에도, 801 01:13:48,930 --> 01:13:52,220 이 따옴표 내부 것도, 보정 할 필요가 없다 802 01:13:52,220 --> 01:13:56,800 그것이 큰 따옴표를 건너다해야하기 때문했지만 여전히 느리게 될 것입니다 803 01:13:56,800 --> 01:14:00,130 보간해야 할 일을 찾고 있어요. 804 01:14:00,130 --> 01:14:05,360 아무것도 보정 할 필요가 없다다면 작은 따옴표는 조금 빠르게 할 수 있습니다 805 01:14:05,360 --> 01:14:15,650 나는 '안녕, 내 이름은'에 대한 작은 따옴표를 사용하여도하는 경향이 있습니다. $ 배열 [ ''] 어쨌든. 806 01:14:15,650 --> 01:14:20,430 그건 우리가 전에했던 일에 해당 될거야. 807 01:14:24,840 --> 01:14:28,440 그러나 선호의 문제입니다. 808 01:14:28,440 --> 01:14:34,750 당신이 PHP를 사용하는 경우, 당신은 아마 속도 차이에 대한 상관 없어. 809 01:14:34,750 --> 01:14:39,480 로 시작하도록 논리는 충분히 없습니다. 810 01:14:39,480 --> 01:14:43,030 >> 모든 마지막 질문? 811 01:14:47,430 --> 01:14:51,710 >> 우리는 실제로 심지어 모든 통과하지 못했지만,이 물건은 지루했다. 812 01:14:51,710 --> 01:14:59,080 당신이 HTML를 처리 할 때 PHP에 어떤 좋은 일입니다 마지막으로는, 813 01:14:59,080 --> 01:15:06,450 당신은 변수를 인쇄 한번 비트, 그래서 좋은 바로 가기 구문을 사용합니다. 814 01:15:32,400 --> 01:15:36,730 여기에 PHP를주지 않고, 이것은 짧은 태그 (short tags)라고합니다. 815 01:15:36,730 --> 01:15:44,330 공식적으로 PHP 5.4의 등이 더 이상 사용되지 않습니다. 816 01:15:44,330 --> 01:15:48,640 당신은 PHP를 넣어하는 것이 좋습니다. 817 01:15:48,640 --> 01:15:55,770 이것은 여전히​​ <가 너무 짧은 태그를 지원합니다? = 아직 완벽하게 잘됩니다. 818 01:15:55,770 --> 01:16:02,480 그것은 기본적으로 지원하므로 원하는대로이를 사용할 수 있습니다, 그들은 아주 편리하고 있습니다. 819 01:16:02,480 --> 01:16:05,700 >> 질문? 820 01:16:07,780 --> 01:16:09,270 괜찮아요. 821 01:16:10,840 --> 01:16:13,800 >> , 샌디에이고 (San Diego) 고급 있어요. 822 01:16:13,800 --> 01:16:16,070 ㅠ ㅠ 823 01:16:18,620 --> 01:16:22,660 안녕. [웃음] 824 01:16:24,350 --> 01:16:28,470 [박수] [웃음] 825 01:22:46,460 --> 01:22:49,460 >> [CS50.TV]