为什么在PHP一直唱衰的情况下,平常还是很常见有关PHP的内容?

本文回顾了PHP从2014年的火爆到16年后待遇下滑的过程,指出PHP的崛起与衰落反映了互联网行业的变迁。作为创业首选的技术,PHP的实用性在初创公司中依然重要。作者强调每个语言都有其适用场景,PHP并非衰落,只是回归正常热度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:于洋
链接:https://www.zhihu.com/question/427466604/answer/1581210689
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
PHP交流:974276151

我是从07年开始写代码,那时候写java,但那时整个互联网都在唱衰java:开发慢,效率低,运行慢…… 08年去了南方某大厂开始写PHP。

11年回到四线老家之后开始创业,招不到PHP程序员,因为我们这里当时用的最多的还是asp,也没有几个正儿八经搞技术的公司。在14年的时候,PHP突然火起来了,到处都在招PHP,我们城市在14年时公务员月薪在5k左右,那时一个刚从培训班出来的PHP都能开到7k,有两三年经验的PHP直接10k起步,同时期招的有经验的ios和安卓待遇只有5k左右。

PHP在14-16年在国内实在是太流行了,那时候国内创业公司如雨后春笋一般,PHP快速开发的优势异常明显。但是随着互联网行业洗牌,小公司倒闭的倒闭,跑路的跑路,遗留了大量的PHP程序员,尤其是二把刀程序员,PHP的待遇也急转直下。我公司在16年开始转型做物联网,17年招聘就发现了大量的PHP转型的c、py、c#、node程序员,这些程序员都有一个共性,鼓吹自己的技术栈,贬低PHP,甚至有个小伙子认为当初去培训班学了PHP是毁了自己……PHP之前在国内的爆火其实是畸形的,而最近两年又被全网唱衰也是畸形的,每个语言都有自己的优势和应用环境,不能说PHP现在衰了,只能说是回归了正常热度吧。而且就算是被唱衰了更久的vb、asp,甚至foxpro的内容我都刷到过…… 所以在未来十几年内想要刷不到PHP相关的内容还是挺难的。

这十多年我写过各种语言,做过传统互联网、做过移动互联网、到最近几年一直在做物联网,在我十多年程序员+创业者的角度看来,对于初创互联网公司来说,PHP仍然是技术选型的不二之选,创业不是玩技术,是实打实的烧钱,开发效率就是一切。对于大厂来说,502+哥俩好搭配玻璃胶泡沫胶等等等等简直完美不过,但对于创业公司来说,一个虽然哪都不精但哪都能用的万能胶确是最好的东西!邓伯:哪个语言没被唱衰过?发霉的语言才没有。java被人唱衰过,C被人唱衰过,有谁没被人唱衰过?招牌大,就一定有人唱衰。

ESP32的IDF(Espressif IoT Development Framework)中,你需要使用非易失性的存储,如Flash或外部EEPROM,来存储WiFi账号密码,因为它们不适合频繁改变并且需要长期保存。你可以使用第三方库如`nvs_flash`(Non-Volatile Storage)来持久化存储数据。 以下是一个简单的步骤来设置读取WiFi信息: 1. **设置WiFi信息**: 使用`nvs_flash_write_string`函数将WiFi账号密码写入到非易失存储区: ```c #include <esp_system.h> #include <esp_nvs.h> esp_err_t write_wifi_info(const char* ssid, const char* password) { esp_err_t ret = esp_err_t; nvs_handle nvs; ret = esp_nvs_open("wifi_settings", NVS_READONLY|NVS_FILE_MODE, &nvs); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ret = esp_nvs_erase_all(); // 如果已存在则先清除旧数据 if (ret == ESP_OK) { ret = esp_nvs_open("wifi_settings", NVS_WRITE|NVS_FILE_MODE, &nvs); // 再次打开并写入 } } if (ret == ESP_OK) { esp_err_t write_ret = esp_nvs_put_string(nvs, "ssid", ssid, strlen(ssid)+1); if (write_ret == ESP_OK) { write_ret = esp_nvs_put_string(nvs, "password", password, strlen(password)+1); } esp_err_t commit_ret = esp_nvs_commit(nvs); if (commit_ret == ESP_OK) { ESP_LOGI(TAG, "WiFi info saved successfully"); } else { ESP_LOGE(TAG, "Error committing to NVS: %s", esp_err_to_name(commit_ret)); } esp_nvs_close(nvs); } else { ESP_LOGE(TAG, "Error opening NVS: %s", esp_err_to_name(ret)); } } // 调用该函数存储SSID密码 write_wifi_info("your_SSID", "your_Password"); ``` 2. **读取WiFi信息**: 当你需要从非易失存储加载WiFi信息时,可以这样做: ```c void read_and_connect_wifi() { esp_err_t ret = esp_err_t; nvs_handle nvs; ret = esp_nvs_open("wifi_settings", NVS_READONLY, &nvs); if (ret == ESP_OK) { const char* ssid = esp_nvs_get_string(nvs, "ssid", ""); const char* password = esp_nvs_get_string(nvs, "password", ""); esp_nvs_close(nvs); if (!strcmp(ssid, "your_SSID") && !strcmp(password, "your_Password")) { // 创建WiFi配置结构并连接 // ... } else { ESP_LOGE(TAG, "Invalid WiFi credentials"); } } else { ESP_LOGE(TAG, "Error reading from NVS: %s", esp_err_to_name(ret)); } } ``` 在实际应用中,连接WiFi通常会包含一个循环,不断尝试连接直到成功或超时。记得在操作过程中处理可能出现的错误。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值