I'm a fan of Sublime, the package manager, and the ease of use. I used to use Notepad++, but changed over a couple of years ago.
It's tough to beat NetBeans. It is free. It has a built-in debugger allowing you to step through code line-by-line. It has its annoyances. I also used to like PHPEdit. But that's a pay program.
As a Windows users I always used Notepad++. It's good for most syntax, not only PHP. Really lightweight editor and straight to the point.
I've heard good things about Sublime, it's what we use at work. But Notepad++ is free so it's what I use at home.
npp is great for one page scripts but if you have a complex project with lots of files it is nice to see everything in the tree. Maybe I'm spoiled coming from Visual Studio
I've gotten so use to mvc frameworks like codeigniter, I've dropped the idea of a structure tree. Although having a tree is good to create content silos.
Technically, Sublime is payware, but all you get if you don't pay is a nag-screen that pops up after saving sometimes (every 8 or 10 save, or something) - so it's perfectly possible to use without paying.
I can use notepad++ because in it nice features and very usefull for editing mode for coding part. Notepad++ is upgrade version of Notepad so in it very high features so very usefull for editing file.
Sublime, lightweight, simple, robust, package manager that support almost every language plugins and great interface.
Netbeans gets bloated and has to be closed and restarted and that p'ed me off so I took @PoPSiCLe's advice and checked out sublime and I'm sold. The only time I'll use Netbeans now is when I've got some gnarly error that I can't trace through standard error messages and they'll show up as a red mark in Netbeans and get fixed in a jiffy. That only happens once in blue moon and it's not worth dealing with the performance issues the rest of the time. I've tried to give notepad++ a fair shot, I really have, but I just can't see why people recommend it.
I use Notepad ++ but now that @PoPSiCLe & @sarahk are using Sublime, makes me want to check it out. I cannot lie, I scrolled all the way down hoping to see what @PoPSiCLe and @deathshadow were going to say. (I think deathshadow is going to go hard and say regular notepad) Sublime was a great band, may be great software too, gotta give it a look. @sarahk I use notepad ++ because I started using Dreamweaver a long long time ago, and it just ruined my day too often, So I said F all programs and went to Notepad. Then a buddy put me on to Notepad ++ because it does have more features than Notepad but not all the crap dreamweaver put out.
Even I don't go there, but I know a few people who did... besides if I was gonna go THAT hardcore I'd be talking about EDLIN or "copy con > filename.txt". My weapon of choice is Flo's Notepad2. It's based on Scintilla without being a total piece of Scite. http://www.flos-freeware.ch/notepad2.html Rather than just list it, I'll explain WHY... I do, as @KangBroke suggested like my editors simple; there are a LOT of things in modern programmers editors that piss me off. Some of my dislikes aren't that modern - like colour syntax highlighting. For me I've never seen it not be an illegible blurry mess where I can't read a damned word in the text thanks to the endless striping of colour. ANYTHING that hampers legibility is NOT an "aid" so if I can't turn that off and leave it off by default, I'm not going to stick very long with the editor. Notepad2 has them, but I can turn them off. I dislike tabbed interfaces particularly if it's the default behavior -- the tabs themselves waste screen space better used for what I'm actually editing, particularly when it's redundant to this thing called a TASKBAR. (more so if you turn off that stupid "group by program" nonsense). Stuffing everything into one window with tabs is a massive step BACKWARDS in functionality, more so if you are running multiple displays of 1920x1080 or higher. For example if you are working with PHP or HTML, that probably means you also have JavaScript and CSS... It's WAY more convenient to have three windows side-by-side 1/3rd display width and full display height so you can look at the code for related sections at the same time. While more true of HTML+CSS it pretty much works that way across the board. I also don't want any goofy "panel" type garbage, version control or "project management" -- they're just more work, a waste of time, and generally either means your organizational skills suck, your communications skills suck, the project is getting too damned big for its own good, or someone like the project manager isn't doing their damned job and is wasting their time playing Facebook games instead of interacting with the people ACTUALLY doing work. Autocomplete and autoclosures are another annoyance, since it just makes me spend more time fixing/editing what it did for me than it saves me on typing. Same goes for toolbars -- I'm usually good with just the classic dropdown menu since those basically teach you the keyboard shortcuts anyways. But for all my dislikes, there are certain minimums that have to be taken into consideration. The ability to shift between character encodings, regex search and replace, auto-switching between tabs and spaces, auto-indent, block indent/de-indent, wrap indicators, indent indicators, brace matching, line numbers (I'm often in shock when I see editors that don't have line numbers -- it's like whiskey tango foxtrot?!?), adjustable long line guide (since I use the older 76, some modern style guides want you to use 78), tab width control, single file instancing (so you can't accidentally open two copies at once of the same file), trailing blank removal (auto at savetime a plus), and a proper status bar showing "essentials" like cursor row, column, filesize, selection size, encoding, newline method, and togglekeys states (num/caps lock). But I know a lot of my "must have" are other people's dislikes, and that a lot of my dislikes are other people's "must have" -- I mean for example the fat bloated illegible train wreck that is sublime pisses me off, but I know others love it. Vi/Vim or eMacs to me feel like you spend more time dicking around with editor modes and macro's than you do programming so it feels more like a 1970's technological parody -- some people swear by them, I swear at them. That's why one's choice in editor is a very personal one, so unless an employer is shoving a particular one down your throat, use what you're most comfortable with. Well, unless it's idiotic bloated rubbish with preview panes, WYSIWYGS and other such asshattery... then you create microwave are from the media, kick start the wood burning stove with the manuals, and kick whoever told you to use it right square in the junk.
I prefer to use "Windows Notepad.exe". For me it only has one problem; it cannot save as "UTF-8" without "BOM. So I use "notepad++" just to correct the encoding. coothead
As @deathshadow stated, a reasoning for why is probably good. My choice is Sublime just because I like the things he doesn't. color syntax highlighting: this, to me, makes it way quicker to find what I'm looking for on a page - instead of having to read through lines of lines of code (especially if you're not 100% sure what you're looking for), I can scan through looking for colors tabbed interface: personally, I like tabs - I can switch between them quickly, and I can't read two pages/windows at the same time either way - switching back and forth is also the only reasonable thing to do on smaller screens, like on a laptop, which I use frequently for coding. Also, Macs don't have a taskbar, so that's a no-go (I'm currently using a Macbook Pro as my laptop). project management: I use Github, simply because it makes it easy to have a central repository for files, and make sure that you always have the same set of files if you work on different places / computers (yes, of course I could just make it a Dropbox-folder, and have it sync that way) - I can also pull those repositories to a new computer, or pull them directly to the webserver if I've updated the files - makes life simpler, methinks I don't really use the auto-functions that much, but I do like the automatic start/end of (), {} and []. I also like Sublime for the extensive package-management system you have available. Most things is possible to do directly from Sublime, if you want to. Want to update your Github repository automatically when you save a file? No problem. Need a color-syntax file for a specific programming language? No problem. Automatic build for different programming languages? No problem. You can also change almost everything from within the program, by making/changing config-files. Also, everything @deathshadow mentions as "must-have" is available in Sublime (and if you want, you can of course turn off color syntax and so on)