yii2源码学习笔记(十九),yii2源码学习笔记_PHP教程
yii2源码学习笔记(十九),yii2源码学习笔记
view剩余代码
<span> 1</span> <span>/*</span><span>* </span><span> 2</span> <span> * @return string|boolean the view file currently being rendered. False if no view file is being rendered. </span><span> 3</span> <span> * 当前正在渲染的视图文件 </span><span> 4</span> <span>*/</span> <span> 5</span> <span>public</span><span> function getViewFile() </span><span> 6</span> <span> { </span><span> 7</span> <span>return</span> end($<span>this</span>-><span>_viewFiles); </span><span> 8</span> <span> } </span><span> 9</span> <span> 10</span> <span>/*</span><span>* </span><span> 11</span> <span> * This method is invoked right before [[renderFile()]] renders a view file. </span><span> 12</span> <span> * The default implementation will trigger the [[EVENT_BEFORE_RENDER]] event. </span><span> 13</span> <span> * 前置事件,执行[renderFile()]时被调用,默认触发[[EVENT_BEFORE_RENDER]]事件 </span><span> 14</span> <span> * If you override this method, make sure you call the parent implementation first. </span><span> 15</span> <span> * @param string $viewFile the view file to be rendered. 要渲染的视图文件。 </span><span> 16</span> <span> * @param array $params the parameter array passed to the [[render()]] method. </span><span> 17</span> <span> * 参数数组传递到[render()]方法。 </span><span> 18</span> <span> * @return boolean whether to continue rendering the view file. 是否继续渲染视图文件。 </span><span> 19</span> <span>*/</span> <span> 20</span> <span>public</span> function beforeRender($viewFile, $<span>params</span><span>) </span><span> 21</span> <span> { </span><span> 22</span> $<span>event</span> = <span>new</span> ViewEvent([<span>//</span><span>实例化ViewEvent</span> <span> 23</span> <span>'</span><span>viewFile</span><span>'</span> =><span> $viewFile, </span><span> 24</span> <span>'</span><span>params</span><span>'</span> => $<span>params</span><span>, </span><span> 25</span> <span> ]); </span><span> 26</span> $<span>this</span>->trigger(self::EVENT_BEFORE_RENDER, $<span>event</span>);<span>//</span><span>触发[EVENT_BEFORE_RENDER]事件</span> <span> 27</span> <span> 28</span> <span>return</span> $<span>event</span>->isValid;<span>//</span><span>判断是否继续渲染文件</span> <span> 29</span> <span> } </span><span> 30</span> <span> 31</span> <span>/*</span><span>* </span><span> 32</span> <span> * This method is invoked right after [[renderFile()]] renders a view file. </span><span> 33</span> <span> * The default implementation will trigger the [[EVENT_AFTER_RENDER]] event. </span><span> 34</span> <span> * 后置事件,在执行[renderFile()]方法后被调用,默认触发[[EVENT_AFTER_RENDER]]事件 </span><span> 35</span> <span> * If you override this method, make sure you call the parent implementation first. </span><span> 36</span> <span> * @param string $viewFile the view file being rendered.要渲染的视图文件。 </span><span> 37</span> <span> * @param array $params the parameter array passed to the [[render()]] method. </span><span> 38</span> <span> * 参数数组传递到[render()]方法。 </span><span> 39</span> <span> * @param string $output the rendering result of the view file. Updates to this parameter </span><span> 40</span> <span> * will be passed back and returned by [[renderFile()]]. </span><span> 41</span> <span> * 返回视图渲染的结果 </span><span> 42</span> <span>*/</span> <span> 43</span> <span>public</span> function afterRender($viewFile, $<span>params</span>, &<span>$output) </span><span> 44</span> <span> { </span><span> 45</span> <span>if</span> ($<span>this</span>->hasEventHandlers(self::EVENT_AFTER_RENDER)) {<span>//</span><span>判断[EVENT_AFTER_RENDER]事件是否存在</span> <span> 46</span> $<span>event</span> = <span>new</span><span> ViewEvent([ </span><span> 47</span> <span>'</span><span>viewFile</span><span>'</span> =><span> $viewFile, </span><span> 48</span> <span>'</span><span>params</span><span>'</span> => $<span>params</span><span>, </span><span> 49</span> <span>'</span><span>output</span><span>'</span> =><span> $output, </span><span> 50</span> <span> ]); </span><span> 51</span> <span>//</span><span>触发[EVENT_AFTER_RENDER]事件</span> <span> 52</span> $<span>this</span>->trigger(self::EVENT_AFTER_RENDER, $<span>event</span><span>); </span><span> 53</span> $output = $<span>event</span>->output;<span>//</span><span>返回结果</span> <span> 54</span> <span> } </span><span> 55</span> <span> } </span><span> 56</span> <span> 57</span> <span>/*</span><span>* </span><span> 58</span> <span> * Renders a view file as a PHP script. </span><span> 59</span> <span> * 返回一个视图文件当作PHP脚本 </span><span> 60</span> <span> * This method treats the view file as a PHP script and includes the file. </span><span> 61</span> <span> * It extracts the given parameters and makes them available in the view file. </span><span> 62</span> <span> * The method captures the output of the included view file and returns it as a string. </span><span> 63</span> <span> * 将传入的参数转换为变量,包含并执行view文件,返回执行结果 </span><span> 64</span> <span> * This method should mainly be called by view renderer or [[renderFile()]]. </span><span> 65</span> <span> * </span><span> 66</span> <span> * @param string $_file_ the view file. 视图文件 </span><span> 67</span> <span> * @param array $_params_ the parameters (name-value pairs) that will be extracted and made available in the view file. </span><span> 68</span> <span> * @return string the rendering result 执行结果 </span><span> 69</span> <span>*/</span> <span> 70</span> <span>public</span> function renderPhpFile($_file_, $_params_ =<span> []) </span><span> 71</span> <span> { </span><span> 72</span> ob_start(); <span>//</span><span>打开输出缓冲</span> <span> 73</span> ob_implicit_flush(<span>false</span>); <span>//</span><span>关闭缓冲区</span> <span> 74</span> extract($_params_, EXTR_OVERWRITE);<span>//</span><span> 将一个数组转换为变量使用</span> <span> 75</span> <span> require($_file_); </span><span> 76</span> <span> 77</span> <span>return</span> ob_get_clean();<span>//</span><span>得到缓冲区的内容并清除当前输出缓冲</span> <span> 78</span> <span> } </span><span> 79</span> <span> 80</span> <span>/*</span><span>* </span><span> 81</span> <span> * Renders dynamic content returned by the given PHP statements. 渲染动态内容 </span><span> 82</span> <span> * This method is mainly used together with content caching (fragment caching and page caching) </span><span> 83</span> <span> * 用来聚合缓存的内容 </span><span> 84</span> <span> * when some portions of the content (called *dynamic content*) should not be cached. </span><span> 85</span> <span> * The dynamic content must be returned by some PHP statements. </span><span> 86</span> <span> * 渲染某些被PHP语句返回的动态内容 </span><span> 87</span> <span> * @param string $statements the PHP statements for generating the dynamic content.生成动态内容的PHP语句。 </span><span> 88</span> <span> * @return string the placeholder of the dynamic content, or the dynamic content if there is no </span><span> 89</span> <span> * active content cache currently. 动态内容占位符 如果当前没有有效的内容缓存,调用evaluateDynamicContent输出 </span><span> 90</span> <span>*/</span> <span> 91</span> <span>public</span><span> function renderDynamic($statements) </span><span> 92</span> <span> { </span><span> 93</span> <span>if</span> (!empty($<span>this</span>->cacheStack)) {<span>//</span><span>动态内容的列表不为空</span> <span> 94</span> $n = count($<span>this</span>->dynamicPlaceholders);<span>//</span><span>统计动态内容条数</span> <span> 95</span> $placeholder = <span>"</span><span><![CDATA[YII-DYNAMIC-$n]]></span><span>"</span>;<span>//</span><span>生成占位符</span> <span> 96</span> $<span>this</span>->addDynamicPlaceholder($placeholder, $statements);<span>//</span><span>添加动态内容占位符</span> <span> 97</span> <span> 98</span> <span>return</span><span> $placeholder; </span><span> 99</span> } <span>else</span> {<span>//</span><span>没有有效缓存 执行传入的PHP语句,返回执行结果</span> <span>100</span> <span>return</span> $<span>this</span>-><span>evaluateDynamicContent($statements); </span><span>101</span> <span> } </span><span>102</span> <span> } </span><span>103</span> <span>104</span> <span>/*</span><span>* </span><span>105</span> <span> * Adds a placeholder for dynamic content. 添加一个动态内容占位符 </span><span>106</span> <span> * This method is internally used. 内部使用 </span><span>107</span> <span> * @param string $placeholder the placeholder name 占位符名称 </span><span>108</span> <span> * @param string $statements the PHP statements for generating the dynamic content </span><span>109</span> <span> * 生成动态内容的PHP语句 </span><span>110</span> <span>*/</span> <span>111</span> <span>public</span><span> function addDynamicPlaceholder($placeholder, $statements) </span><span>112</span> <span> { </span><span>113</span> <span>foreach</span> ($<span>this</span>->cacheStack <span>as</span><span> $cache) { </span><span>114</span> $cache->dynamicPlaceholders[$placeholder] = $statements;<span>//</span><span>添加动态内容占位符</span> <span>115</span> <span> } </span><span>116</span> $<span>this</span>->dynamicPlaceholders[$placeholder] = $statements;<span>//</span><span>给当前视图添加动态内容占位符</span> <span>117</span> <span> } </span><span>118</span> <span>119</span> <span>/*</span><span>* </span><span>120</span> <span> * Evaluates the given PHP statements. 给定的PHP语句的值 </span><span>121</span> <span> * This method is mainly used internally to implement dynamic content feature.内部使用实现动态内容功能 </span><span>122</span> <span> * @param string $statements the PHP statements to be evaluated. PHP语句进行计算 </span><span>123</span> <span> * @return mixed the return value of the PHP statements. PHP语句的值 </span><span>124</span> <span>*/</span> <span>125</span> <span>public</span><span> function evaluateDynamicContent($statements) </span><span>126</span> <span> { </span><span>127</span> <span>return</span><span> eval($statements); </span><span>128</span> <span> } </span><span>129</span> <span>130</span> <span>/*</span><span>* </span><span>131</span> <span> * Begins recording a block. </span><span>132</span> <span> * This method is a shortcut to beginning [[Block]] </span><span>133</span> <span> * 数据块开始的标记,该方法是开始[Block]的快捷方式 </span><span>134</span> <span> * 数据块可以在一个地方指定视图内容在另一个地方显示,通常和布局一起使用 </span><span>135</span> <span> * @param string $id the block ID. 数据块标识 </span><span>136</span> <span> * @param boolean $renderInPlace whether to render the block content in place. 是否渲染块内容。 </span><span>137</span> <span> * Defaults to false, meaning the captured block will not be displayed. </span><span>138</span> <span> * @return Block the Block widget instance 数据块部件实例 </span><span>139</span> <span>*/</span> <span>140</span> <span>public</span> function beginBlock($id, $renderInPlace = <span>false</span><span>) </span><span>141</span> <span> { </span><span>142</span> <span>return</span><span> Block::begin([ </span><span>143</span> <span>'</span><span>id</span><span>'</span> => $id,<span>//</span><span>数据块唯一标识</span> <span>144</span> <span>'</span><span>renderInPlace</span><span>'</span> => $renderInPlace,<span>//</span><span>是否显示标识</span> <span>145</span> <span>'</span><span>view</span><span>'</span> => $<span>this</span><span>, </span><span>146</span> <span> ]); </span><span>147</span> <span> } </span><span>148</span> <span>149</span> <span>/*</span><span>* </span><span>150</span> <span> * Ends recording a block. 数据块结束标识 </span><span>151</span> <span>*/</span> <span>152</span> <span>public</span><span> function endBlock() </span><span>153</span> <span> { </span><span>154</span> <span> Block::end(); </span><span>155</span> <span> } </span><span>156</span> <span>157</span> <span>/*</span><span>* </span><span>158</span> <span> * Begins the rendering of content that is to be decorated by the specified view. </span><span>159</span> <span> * This method can be used to implement nested layout. For example, a layout can be embedded </span><span>160</span> <span> * in another layout file specified as '@app/views/layouts/base.php' like the following: </span><span>161</span> <span> * 开始指定的view渲染内容,用来实现嵌套布局,传入的第一个参数为布局文件的路径 </span><span>162</span> <span> * ~~~ </span><span>163</span> <span> * <?php $this->beginContent('@app/views/layouts/base.php'); ?> </span><span>164</span> <span> * ...layout content here... </span><span>165</span> <span> * <?php $this->endContent(); ?> </span><span>166</span> <span> * ~~~ </span><span>167</span> <span> * </span><span>168</span> <span> * @param string $viewFile the view file that will be used to decorate the content enclosed by this widget. </span><span>169</span> <span> * This can be specified as either the view file path or path alias.布局文件的路径或路径别名。 </span><span>170</span> <span> * @param array $params the variables (name => value) to be extracted and made available in the decorative view. </span><span>171</span> <span> * 可以在视图中运用的参数 </span><span>172</span> <span> * @return ContentDecorator the ContentDecorator widget instance 部件实例 </span><span>173</span> <span> * @see ContentDecorator </span><span>174</span> <span>*/</span> <span>175</span> <span>public</span> function beginContent($viewFile, $<span>params</span> =<span> []) </span><span>176</span> <span> { </span><span>177</span> <span>return</span><span> ContentDecorator::begin([ </span><span>178</span> <span>'</span><span>viewFile</span><span>'</span> =><span> $viewFile, </span><span>179</span> <span>'</span><span>params</span><span>'</span> => $<span>params</span><span>, </span><span>180</span> <span>'</span><span>view</span><span>'</span> => $<span>this</span><span>, </span><span>181</span> <span> ]); </span><span>182</span> <span> } </span><span>183</span> <span>184</span> <span>/*</span><span>* </span><span>185</span> <span> * Ends the rendering of content.结束渲染内容 </span><span>186</span> <span>*/</span> <span>187</span> <span>public</span><span> function endContent() </span><span>188</span> <span> { </span><span>189</span> <span> ContentDecorator::end(); </span><span>190</span> <span> } </span><span>191</span> <span>192</span> <span>/*</span><span>* </span><span>193</span> <span> * Begins fragment caching. 开始片段缓存 </span><span>194</span> <span> * This method will display cached content if it is available. </span><span>195</span> <span> * If not, it will start caching and would expect an [[endCache()]] </span><span>196</span> <span> * call to end the cache and save the content into cache. </span><span>197</span> <span> * 展示可用的缓存内容,否则将开始缓存内容直到出现[endCache()]方法 </span><span>198</span> <span> * A typical usage of fragment caching is as follows, </span><span>199</span> <span> * </span><span>200</span> <span> * ~~~ </span><span>201</span> <span> * if ($this->beginCache($id)) { </span><span>202</span> <span> * // ...generate content here </span><span>203</span> <span> * $this->endCache(); </span><span>204</span> <span> * } </span><span>205</span> <span> * ~~~ </span><span>206</span> <span> * </span><span>207</span> <span> * @param string $id a unique ID identifying the fragment to be cached.缓存片段的唯一标识 </span><span>208</span> <span> * @param array $properties initial property values for [[FragmentCache]]初始属性[FragmentCache] </span><span>209</span> <span> * @return boolean whether you should generate the content for caching. 是否生成缓存的内容。 </span><span>210</span> <span> * False if the cached version is available. </span><span>211</span> <span>*/</span> <span>212</span> <span>public</span> function beginCache($id, $properties =<span> []) </span><span>213</span> <span> { </span><span>214</span> $properties[<span>'</span><span>id</span><span>'</span>] = $id; <span>//</span><span>片段标识</span> <span>215</span> $properties[<span>'</span><span>view</span><span>'</span>] = $<span>this</span>; <span>//</span><span>调用初始化属性</span> <span>216</span> <span>/*</span><span> @var $cache FragmentCache </span><span>*/</span> <span>217</span> $cache =<span> FragmentCache::begin($properties); </span><span>218</span> <span>if</span> ($cache->getCachedContent() !== <span>false</span><span>) { </span><span>219</span> $<span>this</span>->endCache();<span>//</span><span>从缓存中读取到了缓存的内容,则渲染内容并返回 false,不再进行缓存</span> <span>220</span> <span>221</span> <span>return</span> <span>false</span><span>; </span><span>222</span> } <span>else</span><span> { </span><span>223</span> <span>return</span> <span>true</span><span>; </span><span>224</span> <span> } </span><span>225</span> <span> } </span><span>226</span> <span>227</span> <span>/*</span><span>* </span><span>228</span> <span> * Ends fragment caching. 结束片段缓存 </span><span>229</span> <span>*/</span> <span>230</span> <span>public</span><span> function endCache() </span><span>231</span> <span> { </span><span>232</span> <span> FragmentCache::end(); </span><span>233</span> <span> } </span><span>234</span> <span>235</span> <span>/*</span><span>* </span><span>236</span> <span> * Marks the beginning of a page.页面开始标记 </span><span>237</span> <span>*/</span> <span>238</span> <span>public</span><span> function beginPage() </span><span>239</span> <span> { </span><span>240</span> ob_start(); <span>//</span><span>打开输出缓冲</span> <span>241</span> ob_implicit_flush(<span>false</span>);<span>//</span><span>关闭缓冲区</span> <span>242</span> <span>243</span> $<span>this</span>-><span>trigger(self::EVENT_BEGIN_PAGE); </span><span>244</span> <span> } </span><span>245</span> <span>246</span> <span>/*</span><span>* </span><span>247</span> <span> * Marks the ending of a page. 页面结束标记 </span><span>248</span> <span>*/</span> <span>249</span> <span>public</span><span> function endPage() </span><span>250</span> <span> { </span><span>251</span> $<span>this</span>-><span>trigger(self::EVENT_END_PAGE); </span><span>252</span> ob_end_flush();<span>//</span><span>关闭输出缓冲区</span> <span>253</span> }

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Xiaohongshu 메모를 삭제하는 방법 Xiaohongshu 앱에서 메모를 편집할 수 있습니다. 다음으로 편집기는 Xiaohongshu 메모 삭제 방법에 대한 사용자 사진과 텍스트를 가져옵니다. 보세요! Xiaohongshu 사용 튜토리얼 Xiaohongshu 메모 삭제 방법 1. 먼저 Xiaohongshu 앱을 열고 메인 페이지로 들어가서 오른쪽 하단에 있는 [Me]를 선택하여 특별 영역으로 들어갑니다. 2. 그런 다음 내 영역에서 다음과 같이 메모 페이지를 클릭합니다. 3. 노트 페이지에 들어가서 오른쪽 상단에 있는 [점 3개]를 클릭합니다. 4. 마지막으로 기능 표시줄이 하단에 확장되고 [삭제]를 클릭하여 완료합니다.

블루 스크린 코드 0x0000001로 수행할 작업 블루 스크린 오류는 컴퓨터 시스템이나 하드웨어에 문제가 있을 때 나타나는 경고 메커니즘입니다. 코드 0x0000001은 일반적으로 하드웨어 또는 드라이버 오류를 나타냅니다. 사용자가 컴퓨터를 사용하는 동안 갑자기 블루 스크린 오류가 발생하면 당황하고 당황할 수 있습니다. 다행히도 대부분의 블루 스크린 오류는 몇 가지 간단한 단계를 통해 문제를 해결하고 처리할 수 있습니다. 이 기사에서는 독자들에게 블루 스크린 오류 코드 0x0000001을 해결하는 몇 가지 방법을 소개합니다. 먼저, 블루 스크린 오류가 발생하면 다시 시작해 보세요.

Xiaohongshu 사용자로서 우리 모두는 게시된 노트가 갑자기 사라지는 상황을 경험해 본 적이 있을 것입니다. 이는 의심할 여지 없이 혼란스럽고 걱정스러운 일입니다. 이런 경우, 우리는 어떻게 해야 합니까? 이번 글에서는 "샤오홍슈에서 발행한 노트가 누락된 경우 어떻게 해야 할까요?"라는 주제를 중심으로 자세한 답변을 드리겠습니다. 1. Xiaohongshu에서 발행한 노트가 누락된 경우 어떻게 해야 합니까? 첫째, 당황하지 마십시오. 메모가 누락된 경우 침착함을 유지하는 것이 중요하며 당황하지 마십시오. 이는 플랫폼 시스템 장애 또는 운영 오류로 인해 발생할 수 있습니다. 출시 기록을 확인하는 것은 쉽습니다. Xiaohongshu 앱을 열고 "나" → "게시" → "모든 출판물"을 클릭하면 자신의 출판 기록을 볼 수 있습니다. 여기에서는 이전에 게시된 메모를 쉽게 찾을 수 있습니다. 3.다시 게시합니다. 발견된 경우

Xiaohongshu 노트에 제품 링크를 추가하는 방법 Xiaohongshu 앱에서는 사용자가 다양한 콘텐츠를 탐색할 수 있을 뿐만 아니라 쇼핑도 할 수 있기 때문에 이 앱에는 쇼핑 추천 및 좋은 제품 공유에 대한 콘텐츠가 많이 있습니다. 이 앱에서는 일부 쇼핑 경험을 공유하고, 협력할 판매자를 찾고, 메모에 링크를 추가하는 등의 작업도 할 수 있습니다. 이 앱은 편리할 뿐만 아니라 많은 전문가가 만들 수 있기 때문에 많은 사람들이 쇼핑에 기꺼이 이 앱을 사용합니다. 흥미로운 콘텐츠를 탐색하고 자신에게 맞는 의류 제품이 있는지 확인할 수 있습니다. 노트에 제품 링크를 추가하는 방법을 살펴보겠습니다. 샤오홍슈 노트에 제품 링크를 추가하는 방법 휴대폰 데스크톱에서 앱을 엽니다. 앱 홈페이지를 클릭하세요

장치를 원격으로 프로그래밍해야 하는 경우 이 문서가 도움이 될 것입니다. 우리는 모든 장치 프로그래밍을 위한 최고의 GE 범용 원격 코드를 공유할 것입니다. GE 리모콘이란 무엇입니까? GEUniversalRemote는 스마트 TV, LG, Vizio, Sony, Blu-ray, DVD, DVR, Roku, AppleTV, 스트리밍 미디어 플레이어 등과 같은 여러 장치를 제어하는 데 사용할 수 있는 리모컨입니다. GEUniversal 리모컨은 다양한 기능과 기능을 갖춘 다양한 모델로 제공됩니다. GEUniversalRemote는 최대 4개의 장치를 제어할 수 있습니다. 모든 장치에서 프로그래밍할 수 있는 최고의 범용 원격 코드 GE 리모컨에는 다양한 장치에서 작동할 수 있는 코드 세트가 함께 제공됩니다. 당신은 할 수있다

프로그래머로서 저는 코딩 경험을 단순화하는 도구에 흥미를 느낍니다. 인공 지능 도구의 도움으로 데모 코드를 생성하고 요구 사항에 따라 필요한 수정 작업을 수행할 수 있습니다. Visual Studio Code에 새로 도입된 Copilot 도구를 사용하면 자연어 채팅 상호 작용을 통해 AI 생성 코드를 만들 수 있습니다. 기능을 설명함으로써 기존 코드의 의미를 더 잘 이해할 수 있습니다. Copilot을 사용하여 코드를 생성하는 방법은 무엇입니까? 시작하려면 먼저 최신 PowerPlatformTools 확장을 가져와야 합니다. 이를 위해서는 확장 페이지로 이동하여 "PowerPlatformTool"을 검색하고 설치 버튼을 클릭해야 합니다.

Word에서 텍스트 내용을 편집할 때 수식 기호를 입력해야 하는 경우가 있습니다. 어떤 사람들은 Word에서 근수를 입력하는 방법을 모르기 때문에 편집자에게 Word에서 근수를 입력하는 방법에 대한 튜토리얼을 친구들과 공유해달라고 요청했습니다. 그것이 내 친구들에게 도움이 되기를 바랍니다. 먼저 컴퓨터에서 Word 소프트웨어를 연 다음 편집하려는 파일을 열고 루트 기호를 삽입해야 하는 위치로 커서를 이동합니다. 아래 그림 예를 참조하세요. 2. [삽입]을 선택한 후, 기호에서 [수식]을 선택하세요. 아래 그림의 빨간색 원과 같이 3. 아래의 [새 수식 삽입]을 선택하세요. 아래 그림의 빨간색 원과 같이 4. [부수]를 선택한 후 해당 부수를 선택합니다. 아래 그림의 빨간색 원에 표시된 대로:

C 언어 학습의 매력: 프로그래머의 잠재력을 여는 것 지속적인 기술 발전으로 컴퓨터 프로그래밍은 많은 주목을 받는 분야가 되었습니다. 많은 프로그래밍 언어 중에서 C 언어는 항상 프로그래머들에게 사랑을 받아 왔습니다. C 언어의 단순성, 효율성 및 폭넓은 적용 덕분에 많은 사람들이 프로그래밍 분야에 입문하는 첫 번째 단계는 C 언어입니다. 이 기사에서는 C 언어 학습의 매력과 C 언어 학습을 통해 프로그래머의 잠재력을 발휘하는 방법에 대해 설명합니다. 우선, C 언어 학습의 매력은 단순함에 있습니다. C언어는 다른 프로그래밍 언어에 비해
