// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= NetBeans IDE 中的 PHP 名称空间支持
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDE 中的 PHP 名称空间支持 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDE 中的 PHP 名称空间支持

|===
|此截屏视频演示 NetBeans IDE 中 PHP 5.3 名称空间的代码完成和语法突出显示。此截屏视频包含在 NetBeans 7.2 中引入的“修复用法”功能，此功能可向用户提供名称空间  ``use``  语句方面的帮助。最后，此截屏视频向用户演示了如何更改 PHP 名称空间代码完成和 PHP Use 语句的选项。此截屏视频还包含了有关静态函数支持的简短部分。

 

作者：Jeff Rubinoff
播放时长：12:33
link:http://bits.netbeans.org/media/php-namespaces.flv[+下载+] [27.4 MB]


== 相关链接

* link:../../../features/php/index.html[+适用于 PHP 的 NetBeans IDE+]
* link:../../../kb/trails/php.html[+PHP 学习资源+]
* link:http://blogs.oracle.com/netbeansphp/[+"NetBeans PHP" 博客+]
link:/about/contact_form.html?to=3&subject=Feedback: Namespace cc screencast[+发送有关此教程的反馈意见+]
 |   
|===
