PHP的is_callable跟method_exists方法比较
PHP的is_callable和method_exists方法比较
之前发过一篇关于is_callable的文章,主要是PHP手册的翻译,现在把is_callable和mehod_exists做一下比较,加深理解:
?
?
?
比较内容 |
method_exists |
is_callable |
调用形式 |
bool method_exists ( mixed $object , string $method_name ) |
bool is_callable ( callback $name [, bool $syntax_only = false [, string &$callable_name ]] ) |
适用范围 |
仅适用于判断类方法 |
可以判断全局函数,也可以判断类方法 |
是否有上下文 |
否 |
是,会判断一个函数是否在当前环境中可调用(例如在子类中判断能否调用父类构造函数) |
是否判断权限 |
否 |
是,在类外,判断private和protected方法会返回false |
是否调用__call方法 |
否 |
是 |
速度 |
快 |
慢 |
?

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



When using PHP for web application development, you will often need to use a database. When using a database, error messages are very common. Among them, PHPFatalerror: Calltoamemberfunctionfetch() is a relatively common error that occurs when using PDO to query the database. So, what causes this error and how to solve it? This article will explain it in detail for you. 1. Cause of error

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

1. Basic features 1. It starts with an optimistic lock, and if lock conflicts are frequent, it is converted to a pessimistic lock. 2. It starts with a lightweight lock implementation, and if the lock is held for a long time, it is converted to a heavyweight lock. 3. The spin lock strategy that is most likely used when implementing lightweight locks 4. It is an unfair lock 5. It is a reentrant lock 6. It is not a read-write lock 2. The JVM will synchronize the locking process Locks are divided into no lock, biased lock, lightweight lock, and heavyweight lock states. It will be upgraded sequentially according to the situation. Biased lock assumes that the male protagonist is a lock and the female protagonist is a thread. If only this thread uses this lock, then the male protagonist and the female protagonist can live happily forever even if they do not get a marriage certificate (avoiding high-cost operations). But the female supporting role appears

How to use the File.Exists function in C# to determine whether a file exists. In C# file operations, determining whether a file exists is a basic functional requirement. The File.Exists function is a method in C# used to determine whether a file exists. This article will introduce how to use the File.Exists function in C# to determine whether a file exists and provide specific code examples. Reference the namespace Before you start writing code, you first need to reference the System.IO namespace, which

How to use the POST request method in jQuery In web development, data interaction between the front-end page and the back-end server is often involved. Among them, POST request is a commonly used method. Through POST request, you can submit data to the backend server and obtain the corresponding return result. jQuery is a popular JavaScript library that provides a convenient way to make AJAX requests. This article will introduce how to use the POST method in jQuery for data transmission and provide specific instructions.

PHP cannot get the name because when the name and id values of the form element are different, the browser cannot recognize it. The solution: 1. Check whether some form elements and frame elements use name; 2. Check only Elements that can be assigned ID but not name; 3. For multi-select box checkbox, you can use "join(',', $__POST['name'])" to form data.

What is the use of name in Vue3? 1. Name needs to be defined when making recursive components. 2. The component can be cached with keep-aliveincludeexclude. 3. When Vue reports an error or is debugging, you can see the name of the component. Vue3 defines name1. It is automatically generated as long as the setup syntax sugar mode single file component is turned on in the script. The corresponding name option will be automatically generated based on the file name. For example, Tree.vue, then its name will be automatically generated by Tree. This has a drawback. If you want to modify the name, you need to modify the component name. If there is a place to import the component, you need to modify it together. 2. Open a script to define name

Implementing the Callable interface to create a thread class has provided the Callable interface since Java 5. This interface is an enhanced version of the Runnable interface. The Callable interface provides a call() method as the thread execution body. The call() method can have a return value. The call() method Exceptions can be declared. booleancancel(booleanmay) attempts to cancel the Callable task associated with the Future. Vget() returns the return value of the call() method in the Call task. Calling this method will cause the thread to block, and you must wait for the child thread to end before getting the return value. Vget(longtimeout,Ti
