1)public,provite和protect不能放在函数函数头

今天我才知道,原来这三个修饰的东西,只是用在类里面方法,怪不得一个叫方法,一个叫函数了,原来就是区分他们,哎,

今天遇到这么一个问题:

    

 1 <?php
 2 //header(‘Content-type:text/html;charset=utf8‘);
 3     /**
 4      * Created by PhpStorm.
 5      * User: Interact
 6      * Date: 2017/8/19
 7      * Time: 18:37
 8      */
 9 //首先是编写一个控制器操作类
10     /**
11      * @return array
12      */
13     public  function  mysqlDB(){
14
15     $records=array();
16     $link=mysqli_connect(‘localhost‘,‘root‘,‘root‘,‘thkphp5‘);
17     $sql=‘select * from zixun‘;
18     $result=mysqli_query($link,$sql);
19     while($row=mysqli_fetch_assoc($result)){
20         $records[]=$row;
21     }
22     return  $records;
23 }
24 $records=mysqlDB();
25 var_dump($records);

我在我的一个单独的方法前面加public,原来不行报了错误:

  

解释过来就是:

    解析错误:语法错误,意外的‘public‘(T_PUBLIC),期待文件结束D:\ 00-Code \ PhpStorm \ daima \ 01.php第13行

我勒个去!!

去掉之后就对了。

时间: 2024-07-31 14:27:06

1)public,provite和protect不能放在函数函数头的相关文章

运用Detours库hook API(原理是改写函数的头5个字节)

一.Detours库的来历及下载: Detours库类似于WTL的来历,是由Galen Hunt and Doug Brubacher自己开发出来,于99年7月发表在一篇名为<Detours: Binary Interception of Win32 Functions.>的论文中.基本原理是改写函数的头5个字节(因为一般函数开头都是保存堆栈环境的三条指令共5个字节:8B FF 55 8B EC)为一条跳转指令,直接跳转到自己的函数开头,从而实现API拦截的.后来得到MS的支持并在其网站上提供

函数——函数的两种声明方式:函数声明&amp;函数表达式的区别(未完待续。。。)

一.函数声明中函数名是必须的:函数表达式中则是可选的 //函数声明 function sum(a, b) { return a + b; } alert(sum(1, 2)); //函数表达式 /* var s = function sum(a, b) { return a + b; } alert(s(1, 2)); */ var s = function(a, b) { return a + b; } alert(s(1, 2)); //以上两种都可以 二.用函数声明定义的函数,函数可以在函

不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板

[源码下载] 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 函数重载 缺省参数 内联函数 函数模板 示例1.函数重载, 缺省参数CppFunction1.h #pragma once #include <string> using namespace std; namespace NativeDll { class CppFunction1 { public: string Demo(); }; } CppFunction1.cpp /* * 函数重载,缺省参数

linux socket网络编程 常用函数及头文件

转自:http://blog.chinaunix.net/u3/102500/showart_2065640.html 一 三种类型的套接字: 1.流式套接字(SOCKET_STREAM) 提供面向连接的可靠的数据传输服务.数据被看作是字节流,无长度限制.例如FTP协议就采用这种. 2.数据报式套接字(SOCKET_DGRAM) 提供无连接的数据传输服务,不保证可靠性. 3.原始式套接字(SOCKET_RAW) 该接口允许对较低层次协议,如IP,ICMP直接访问. 二 基本套接字系统调有有如下一

常见指针:指针函数 函数指针 指针的指针 指向指针数组的指针

一.指针函数与函数指针 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义: 1.指针函数是指带指针的函数,即本质是一个函数.函数返回类型是某一类型的指针 类型标识符    *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值.函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量. 表示: floa

关于将函数写入头文件问题

如果某些函数在其他很多 cpp 文件中被调用,那么为了避免写大量重复的代码以及让代码量更小一些,我们可以将这些函数写头文件中,然后其他 cpp 文件只需要引用该头文件然后就可以使用包含在头文件中的函数了. 具体实现方法: 可以直接将函数的定义写入一个xxx.h文件中然后用g++ xxx.h 命令将xxx.h编译一遍然后在cpp源文件中用#include"xxx.h"引用即可 然而上面的方法是存在问题的,如果直接将函数的定义写入头文件中,那么这个头文件如果只同时被一个 cpp 文件引用是

函数—函数进阶(二)

函数-函数进阶(二) 函数-函数进阶-列表生成式 1 #列表回顾 2 name = [2,5,7,9,4] 3 print(name) 4 for i in name: 5 print(i) 6 #结果为: 7 # [2, 5, 7, 9, 4] 8 # 2 9 # 5 10 # 7 11 # 9 12 # 4 13 14 #枚举 15 for index,i in enumerate(name): 16 print(index,i) 17 #结果为: 18 # 0 2 19 # 1 5 20

函数函数sigaction、signal

函数函数sigaction int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 分析: act:传入参数,新的处理方式 oldact:传出参数,旧的处理方式 1 struct sigaction 2 { 3 void(*sa_handler)(int); 4 void(*sa_sigaction)(int, siginfo_t *, void *); 5 sigset_t sa_mas

【Python基础】高阶函数+函数嵌套+闭包 ==装饰器

高阶函数+函数嵌套+闭包 == 装饰器 一 什么是装饰器 二 装饰器需要遵循的原则 三 实现装饰器知识储备 四 高阶函数 五 函数嵌套 六 闭包 七 无参装饰器 八 装饰器应用示例 九 超时装饰器 参考: https://www.cnblogs.com/linhaifeng/articles/6140395.html https://www.cnblogs.com/haiyan123/p/8387769.html 原文地址:https://www.cnblogs.com/XJT2018/p/11