To clarify a bit:
When you use ldap_connect(URI, port), php ignores the port parameter and uses ldap_initialize() - which does not take a port parameter.
Maybe php should refuse to accept a port parameter to in this case.
OTOH ldap_connect(host, port) calls ldap_init(host, port), where port is used unless the host paramter has the form "host:actual port".